Reto, como hago esta consulta?

10/01/2008 - 17:21 por Marino | Informe spam
Tengo una tabla de la siguiente manera:

Id_Doc Id_Funcion Funciones

xxxxx 1 Preparar
xxxxx 2 Ordenar
xxxxx 3 Entregar
zzzzz 1 Comer
zzzzz 2 Fichar
yyyyy 1 Guardar


Es posible realizar una consulta que me arroje el siguiente resultado?


Id_Doc Funciones

xxxxx Preparar, Ordenar, entregar
zzzzz Comer, Fichar
yyyyy Guardar


Es decir que me una las funciones en un campo para cada Id_Doc

Quedo a la espera de cualquier ayuda
Marino Mejia

Preguntas similare

Leer las respuestas

#1 Jesús López
10/01/2008 - 17:36 | Informe spam
Suponiendo que sea SQL Server 2005 y que la tabla se llama
DocumentosFunciones, esto podría valer:



SELECT Id_Doc, STUFF((SELECT ', ' + Funciones As [data()]
FROM DocumentosFunciones T1
WHERE T1.Id_Doc = T2.Id_Doc
FOR XML PATH('')),1,1,'') As Funciones

FROM (SELECT DISTINCT Id_Doc FROM DocumentosFunciones) T2

Saludos:

Jesús López
www.solidq.com



"Marino" escribió en el mensaje
news:
Tengo una tabla de la siguiente manera:

Id_Doc Id_Funcion Funciones

xxxxx 1 Preparar
xxxxx 2 Ordenar
xxxxx 3 Entregar
zzzzz 1 Comer
zzzzz 2 Fichar
yyyyy 1 Guardar


Es posible realizar una consulta que me arroje el siguiente resultado?


Id_Doc Funciones

xxxxx Preparar, Ordenar, entregar
zzzzz Comer, Fichar
yyyyy Guardar


Es decir que me una las funciones en un campo para cada Id_Doc

Quedo a la espera de cualquier ayuda
Marino Mejia
Respuesta Responder a este mensaje
#2 Marino
10/01/2008 - 20:05 | Informe spam
Gracias Jesus, te cuento que estoy trabajando bajo 2004, pero digamos que no
tendria problemas en utilizar el 2005, pero quisiera poder almacenar el
resultado en una vista pues lo necesito es para colocarlo dentro de un
reporte en cristal reports y por lo que veo tu tratas de enviarlo a un
archivo XML. Por lo menos en 2004 me arroja errores.

Muchas gracias por tu tiempo.
Marino Mejia


"Jesús López" wrote:

Suponiendo que sea SQL Server 2005 y que la tabla se llama
DocumentosFunciones, esto podría valer:



SELECT Id_Doc, STUFF((SELECT ', ' + Funciones As [data()]
FROM DocumentosFunciones T1
WHERE T1.Id_Doc = T2.Id_Doc
FOR XML PATH('')),1,1,'') As Funciones

FROM (SELECT DISTINCT Id_Doc FROM DocumentosFunciones) T2

Saludos:

Jesús López
www.solidq.com



"Marino" escribió en el mensaje
news:
> Tengo una tabla de la siguiente manera:
>
> Id_Doc Id_Funcion Funciones
>
> xxxxx 1 Preparar
> xxxxx 2 Ordenar
> xxxxx 3 Entregar
> zzzzz 1 Comer
> zzzzz 2 Fichar
> yyyyy 1 Guardar
>
>
> Es posible realizar una consulta que me arroje el siguiente resultado?
>
>
> Id_Doc Funciones
>
> xxxxx Preparar, Ordenar, entregar
> zzzzz Comer, Fichar
> yyyyy Guardar
>
>
> Es decir que me una las funciones en un campo para cada Id_Doc
>
> Quedo a la espera de cualquier ayuda
> Marino Mejia



Respuesta Responder a este mensaje
#3 Jesús López
11/01/2008 - 11:54 | Informe spam
¿Qué 2004? no conozco ningún SQL Server 2004.

Este código es para SQL Server 2005 y NO devuelve xml, devuelve un conjunto
de registros normales y corrientes, con los valores concatenados..

Saludos:

Jesús López
www.solidq.com




"Marino" escribió en el mensaje
news:
Gracias Jesus, te cuento que estoy trabajando bajo 2004, pero digamos que
no
tendria problemas en utilizar el 2005, pero quisiera poder almacenar el
resultado en una vista pues lo necesito es para colocarlo dentro de un
reporte en cristal reports y por lo que veo tu tratas de enviarlo a un
archivo XML. Por lo menos en 2004 me arroja errores.

Muchas gracias por tu tiempo.
Marino Mejia


"Jesús López" wrote:

Suponiendo que sea SQL Server 2005 y que la tabla se llama
DocumentosFunciones, esto podría valer:



SELECT Id_Doc, STUFF((SELECT ', ' + Funciones As [data()]
FROM DocumentosFunciones T1
WHERE T1.Id_Doc = T2.Id_Doc
FOR XML PATH('')),1,1,'') As Funciones

FROM (SELECT DISTINCT Id_Doc FROM DocumentosFunciones) T2

Saludos:

Jesús López
www.solidq.com



"Marino" escribió en el mensaje
news:
> Tengo una tabla de la siguiente manera:
>
> Id_Doc Id_Funcion Funciones
>
> xxxxx 1 Preparar
> xxxxx 2 Ordenar
> xxxxx 3 Entregar
> zzzzz 1 Comer
> zzzzz 2 Fichar
> yyyyy 1 Guardar
>
>
> Es posible realizar una consulta que me arroje el siguiente resultado?
>
>
> Id_Doc Funciones
>
> xxxxx Preparar, Ordenar, entregar
> zzzzz Comer, Fichar
> yyyyy Guardar
>
>
> Es decir que me una las funciones en un campo para cada Id_Doc
>
> Quedo a la espera de cualquier ayuda
> Marino Mejia



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida