duda con "for XML EXPLICIT"

18/04/2006 - 18:47 por Victor | Informe spam
Buenas a tod@s.

Tengo la siguiente consulta:

SELECT 1 as tag, null as parent, del_codi as [delegacion!1!ID],
del_nombre as [delegacion!1!nombre],
NULL as [oficina!2!ID],
null as [oficina!2!nombre!element],
null as [oficina!2!telefono!element],
null as [oficina!2!fax!element]
FROM ic_delisc WHERE del_codi = 1
UNION ALL
SELECT 2 as tag, 1 as parent, del_codi, del_nombre, ofi_id, ofi_nombre,
ofi_telefono, ofi_fax
FROM ic_oficinas INNER JOIN ic_delisc ON del_codi = ofi_del_codi
WHERE del_codi = 1
ORDER BY [delegacion!1!ID], [oficina!2!ID] FOR XML explicit

que me devuelve lo siguiente:

<delegacion ID="1" nombre="PALMA"><oficina
ID="10"><nombre>Información/Reservas</nombre><telefono>971707711</telefono><
fax>971707721</fax></oficina><oficina
ID="11"><nombre>Embarque</nombre></oficina></delegacion>

Pregunta: necesito añadir un atributo (longitud) a los elementos <telefono>
y <fax>

¿Cómo diantres se hace? Porque me estoy comiendo la cabeza y no hay manera.

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 BitOne®
19/04/2006 - 06:27 | Informe spam
Y cual es el problema o la pregunta?


"Victor" escribió en el mensaje
news:
Mostrar la cita
ID="10"><nombre>Información/Reservas</nombre><telefono>971707711</telefono><
Mostrar la cita
<telefono>
Mostrar la cita
manera.
Mostrar la cita
#2 Antonio Royo
19/04/2006 - 09:30 | Informe spam
Hola:
Yo tampoco acabo de enterder la cuestion. Si lo que quieres es que los
campos de telefono y fax tengan una longitud determinada los puedes formatear
en la SELECT, o es que quieres añadir algo así:
<telefonolongitud>9</telefonolongitud>

"BitOne®" wrote:

Mostrar la cita
#3 Victor
19/04/2006 - 09:38 | Informe spam
Lo que "me gustaria" es esto:

<delegacion ID="1" nombre="PALMA">
<oficina ID="10">
<nombre>Información/Reservas</nombre>
<telefono longitud="9">971707711</telefono>
<fax longitud="9">971707721</fax>
</oficina>
<oficina ID="11">
<nombre>Embarque</nombre>
</oficina>
</delegacion>

Es decir, añadir un atributo "longitud" a los elementos <telefono> y <fax>


"BitOne®" escribió en el mensaje
news:
Mostrar la cita
ID="10"><nombre>Información/Reservas</nombre><telefono>971707711</telefono><
Mostrar la cita
#4 Antonio Royo
20/04/2006 - 18:25 | Informe spam
Hola:
Hace tiempo que no tocaba este tema pero repasando los books online me temo
que la unica forma de la hacer lo que tu quieres es añadir mas SELECT. Algo
asi para el atributo fax:
SELECT 1 as tag, null as parent, del_codi as [delegacion!1!ID],
del_nombre as [delegacion!1!nombre],NULL as [oficina!2!ID],
null as [oficina!2!nombre],null as [oficina!2!telefono!element],
null as [fax!3!numerofax],null as [fax!3!longitud]
FROM ic_delisc WHERE del_codi = 1
UNION ALL
SELECT 2 as tag, 1 as parent,
del_codi, del_nombre, ofi_id,
ofi_nombre,ofi_telefono,ofi_fax,null
FROM ic_oficinas INNER JOIN ic_delisc ON del_codi = ofi_del_code
WHERE del_codi = 1
UNION ALL
SELECT 3 as tag, 2 as parent,
del_codi, del_nombre, ofi_id, ofi_nombre,
ofi_telefono, ofi_fax,9
FROM ic_oficinas INNER JOIN ic_delisc ON del_codi = ofi_del_code
WHERE del_codi = 1
ORDER BY [delegacion!1!ID], [oficina!2!ID], [fax!3!numerofax]
FOR XML explicit

Espero que te sirva.

"Victor" wrote:

Mostrar la cita
#5 Victor
21/04/2006 - 10:26 | Informe spam
Bueno, al menos es una solución.

Muchas gracias.
"Antonio Royo" escribió en el
mensaje news:
Mostrar la cita
temo
Mostrar la cita
Algo
Mostrar la cita
<fax>
Mostrar la cita
Ads by Google
Search Busqueda sugerida