Resultado de una consulta dentro de otra

09/02/2005 - 18:21 por Oriol | Informe spam
Hola a todos,

Me han comentado que existe una instrucción SQL de agrupamiento (como COUNT
o PIVOT), que te permite agrupar registros dentro de un solo campo separados
por comas, pero no he encontrado nada en los foros de consultas SQL que he
consultado.

La consulta en cuestión seria de este tipo

SELECT NombrePuesto, COUNT (IdTrabajador) AS TotalTrabajadores,
"La instrucción" ("Los campos") AS NombreTrabajadoresdelPuesto
FROM Puestos INNER JOIN
Trabajadores ON Puestos.pu_IdPuesto = Trabajadores.tra_IdPuesto

y tendría que devolver algo parecido a esto, o esa es la idea :-p

NombrePuesto TotalTrabajadores NombreTrabajadoresdelPuesto
Programador 2 José, Pepe
Webmaster 3 María, Gertrudis,Juan
Administrador 1 Pedro

Muchas gracias a todos de antemano.

Oriol.

Preguntas similare

Leer las respuestas

#11 Oriol
16/02/2005 - 12:45 | Informe spam
Hola Maxi,

No pasa nada, simplemente relanzaba la pregunta a ver si alguien mas tenia
idea.

Si, la idea es poner en un solo string (dentro de un registro), la
concatenacion de los registros que me devuelve otra consulta.

Basicamente este requerimiento lo tengo para un Report, ya que no puedo
hacer mas sub-reports y solo me quedaria esto, es decir, conseguir una lista
de nombres que saldrian de otra consulta.

He mirado un poco por SQL Server Central, pero voy un poco perdido con el
ingles, si encuentras algo, me lo comentas, aunque intentare buscar algo yo
tambien.

Mil gracias otra vez.
Oriol.

"Maxi" escribió en el mensaje
news:
Hola, perdon!! se me paso el hilo :(, lo que nbo entiendo es esa
concatenacion en una sola linea, si tienes 2 registros los quieres ver en
una sola linea? la verdad que nunca lo hice asi, pero de ser asi habria


que
buscar en www.sqlservercentral.com que seguramente hay alguna query que lo
resuelva.

Si no lo encuentras me avisas y te busco a ver si hay uno :-)


Salu2
Maxi


"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:
> Hola Maxi,
>
> No, las , no separan registros. Lo que queremos es que en la tercera
> columna
> de los resultados sea una concatenacion de los registros de otra


consulta.
>
> A ver si puedo explicarme un poco mejor. Tenemos una consulta que nos
> devuelve el numero de trabajadores en cada puesto, pero tambien queremos
> tener los nombres de dichos trabajadores. Como esto esta en otra tabla,
> tendriamos que hacer otra consulta, pero nos interesa mucho tenerlo en


la
> misma tabla de resultados.
>
> Con lo cual, el tercer registro de los resultados donde aparecen los
> nombres
> seria una concatenacion de los resultados de una consulta. Por ejemplo,


la
> consulta de la primera fila seria "SELECT Nombre FROM Trabajadores WHERE
> puesto=Programador" y aqui nos devolveria 2 registros con José y Pepe, y
> queremos poner esto como una concatenacion en el registro de la tabla
> resultados.
>
> No se si me explico, creo que si.
>
> Me he mirado el link, pero me parece que no es exactamente lo que
> necesito.
>
> Gracias de antemano,
> Oriol.
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, me imagino que las , separan registros. Pues si es asi se te va a
>> hacer complejo manejarlo de esta manera, yo en estos casos armo en sql


la
>> base de los datos y lo resuelvo luego en el cliente.
>>
>> Tambien te voy a pasar este link, quizas pueda ayudarte en algo
>>
>>
>


http://www.configuracionesintegrale...p?articulo'5
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
>> news:eg6r$
>> > Hola a todos,
>> >
>> > Me han comentado que existe una instrucción SQL de agrupamiento (como
>> > COUNT
>> > o PIVOT), que te permite agrupar registros dentro de un solo campo
>> > separados
>> > por comas, pero no he encontrado nada en los foros de consultas SQL


que
> he
>> > consultado.
>> >
>> > La consulta en cuestión seria de este tipo
>> >
>> > SELECT NombrePuesto, COUNT (IdTrabajador) AS TotalTrabajadores,
>> > "La instrucción" ("Los campos") AS NombreTrabajadoresdelPuesto
>> > FROM Puestos INNER JOIN
>> > Trabajadores ON Puestos.pu_IdPuesto = Trabajadores.tra_IdPuesto
>> >
>> > y tendría que devolver algo parecido a esto, o esa es la idea :-p
>> >
>> > NombrePuesto TotalTrabajadores NombreTrabajadoresdelPuesto
>>

>> > Programador 2 José, Pepe
>> > Webmaster 3 María,
> Gertrudis,Juan
>> > Administrador 1 Pedro
>> >
>> > Muchas gracias a todos de antemano.
>> >
>> > Oriol.
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#12 Oriol
16/02/2005 - 12:45 | Informe spam
Hola Maxi,

No pasa nada, simplemente relanzaba la pregunta a ver si alguien mas tenia
idea.

Si, la idea es poner en un solo string (dentro de un registro), la
concatenacion de los registros que me devuelve otra consulta.

Basicamente este requerimiento lo tengo para un Report, ya que no puedo
hacer mas sub-reports y solo me quedaria esto, es decir, conseguir una lista
de nombres que saldrian de otra consulta.

He mirado un poco por SQL Server Central, pero voy un poco perdido con el
ingles, si encuentras algo, me lo comentas, aunque intentare buscar algo yo
tambien.

Mil gracias otra vez.
Oriol.

"Maxi" escribió en el mensaje
news:
Hola, perdon!! se me paso el hilo :(, lo que nbo entiendo es esa
concatenacion en una sola linea, si tienes 2 registros los quieres ver en
una sola linea? la verdad que nunca lo hice asi, pero de ser asi habria


que
buscar en www.sqlservercentral.com que seguramente hay alguna query que lo
resuelva.

Si no lo encuentras me avisas y te busco a ver si hay uno :-)


Salu2
Maxi


"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:
> Hola Maxi,
>
> No, las , no separan registros. Lo que queremos es que en la tercera
> columna
> de los resultados sea una concatenacion de los registros de otra


consulta.
>
> A ver si puedo explicarme un poco mejor. Tenemos una consulta que nos
> devuelve el numero de trabajadores en cada puesto, pero tambien queremos
> tener los nombres de dichos trabajadores. Como esto esta en otra tabla,
> tendriamos que hacer otra consulta, pero nos interesa mucho tenerlo en


la
> misma tabla de resultados.
>
> Con lo cual, el tercer registro de los resultados donde aparecen los
> nombres
> seria una concatenacion de los resultados de una consulta. Por ejemplo,


la
> consulta de la primera fila seria "SELECT Nombre FROM Trabajadores WHERE
> puesto=Programador" y aqui nos devolveria 2 registros con José y Pepe, y
> queremos poner esto como una concatenacion en el registro de la tabla
> resultados.
>
> No se si me explico, creo que si.
>
> Me he mirado el link, pero me parece que no es exactamente lo que
> necesito.
>
> Gracias de antemano,
> Oriol.
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, me imagino que las , separan registros. Pues si es asi se te va a
>> hacer complejo manejarlo de esta manera, yo en estos casos armo en sql


la
>> base de los datos y lo resuelvo luego en el cliente.
>>
>> Tambien te voy a pasar este link, quizas pueda ayudarte en algo
>>
>>
>


http://www.configuracionesintegrale...p?articulo'5
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
>> news:eg6r$
>> > Hola a todos,
>> >
>> > Me han comentado que existe una instrucción SQL de agrupamiento (como
>> > COUNT
>> > o PIVOT), que te permite agrupar registros dentro de un solo campo
>> > separados
>> > por comas, pero no he encontrado nada en los foros de consultas SQL


que
> he
>> > consultado.
>> >
>> > La consulta en cuestión seria de este tipo
>> >
>> > SELECT NombrePuesto, COUNT (IdTrabajador) AS TotalTrabajadores,
>> > "La instrucción" ("Los campos") AS NombreTrabajadoresdelPuesto
>> > FROM Puestos INNER JOIN
>> > Trabajadores ON Puestos.pu_IdPuesto = Trabajadores.tra_IdPuesto
>> >
>> > y tendría que devolver algo parecido a esto, o esa es la idea :-p
>> >
>> > NombrePuesto TotalTrabajadores NombreTrabajadoresdelPuesto
>>

>> > Programador 2 José, Pepe
>> > Webmaster 3 María,
> Gertrudis,Juan
>> > Administrador 1 Pedro
>> >
>> > Muchas gracias a todos de antemano.
>> >
>> > Oriol.
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#13 Maxi
16/02/2005 - 13:16 | Informe spam
Hola, entiendo, voy a ver si te busco algo y te lo expongo!! De todas
maneras ya te voy comentando que la solucion que podamos encontrar no sera
nada eficiente :(


Salu2
Maxi


"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:%
Hola Maxi,

No pasa nada, simplemente relanzaba la pregunta a ver si alguien mas tenia
idea.

Si, la idea es poner en un solo string (dentro de un registro), la
concatenacion de los registros que me devuelve otra consulta.

Basicamente este requerimiento lo tengo para un Report, ya que no puedo
hacer mas sub-reports y solo me quedaria esto, es decir, conseguir una
lista
de nombres que saldrian de otra consulta.

He mirado un poco por SQL Server Central, pero voy un poco perdido con el
ingles, si encuentras algo, me lo comentas, aunque intentare buscar algo
yo
tambien.

Mil gracias otra vez.
Oriol.

"Maxi" escribió en el mensaje
news:
Hola, perdon!! se me paso el hilo :(, lo que nbo entiendo es esa
concatenacion en una sola linea, si tienes 2 registros los quieres ver en
una sola linea? la verdad que nunca lo hice asi, pero de ser asi habria


que
buscar en www.sqlservercentral.com que seguramente hay alguna query que
lo
resuelva.

Si no lo encuentras me avisas y te busco a ver si hay uno :-)


Salu2
Maxi


"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:
> Hola Maxi,
>
> No, las , no separan registros. Lo que queremos es que en la tercera
> columna
> de los resultados sea una concatenacion de los registros de otra


consulta.
>
> A ver si puedo explicarme un poco mejor. Tenemos una consulta que nos
> devuelve el numero de trabajadores en cada puesto, pero tambien
> queremos
> tener los nombres de dichos trabajadores. Como esto esta en otra tabla,
> tendriamos que hacer otra consulta, pero nos interesa mucho tenerlo en


la
> misma tabla de resultados.
>
> Con lo cual, el tercer registro de los resultados donde aparecen los
> nombres
> seria una concatenacion de los resultados de una consulta. Por ejemplo,


la
> consulta de la primera fila seria "SELECT Nombre FROM Trabajadores
> WHERE
> puesto=Programador" y aqui nos devolveria 2 registros con José y Pepe,
> y
> queremos poner esto como una concatenacion en el registro de la tabla
> resultados.
>
> No se si me explico, creo que si.
>
> Me he mirado el link, pero me parece que no es exactamente lo que
> necesito.
>
> Gracias de antemano,
> Oriol.
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, me imagino que las , separan registros. Pues si es asi se te va
>> a
>> hacer complejo manejarlo de esta manera, yo en estos casos armo en sql


la
>> base de los datos y lo resuelvo luego en el cliente.
>>
>> Tambien te voy a pasar este link, quizas pueda ayudarte en algo
>>
>>
>


http://www.configuracionesintegrale...p?articulo'5
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
>> news:eg6r$
>> > Hola a todos,
>> >
>> > Me han comentado que existe una instrucción SQL de agrupamiento
>> > (como
>> > COUNT
>> > o PIVOT), que te permite agrupar registros dentro de un solo campo
>> > separados
>> > por comas, pero no he encontrado nada en los foros de consultas SQL


que
> he
>> > consultado.
>> >
>> > La consulta en cuestión seria de este tipo
>> >
>> > SELECT NombrePuesto, COUNT (IdTrabajador) AS TotalTrabajadores,
>> > "La instrucción" ("Los campos") AS NombreTrabajadoresdelPuesto
>> > FROM Puestos INNER JOIN
>> > Trabajadores ON Puestos.pu_IdPuesto = Trabajadores.tra_IdPuesto
>> >
>> > y tendría que devolver algo parecido a esto, o esa es la idea :-p
>> >
>> > NombrePuesto TotalTrabajadores NombreTrabajadoresdelPuesto
>>

>> > Programador 2 José, Pepe
>> > Webmaster 3 María,
> Gertrudis,Juan
>> > Administrador 1 Pedro
>> >
>> > Muchas gracias a todos de antemano.
>> >
>> > Oriol.
>> >
>> >
>>
>>
>
>






Respuesta Responder a este mensaje
#14 Maxi
16/02/2005 - 13:16 | Informe spam
Hola, entiendo, voy a ver si te busco algo y te lo expongo!! De todas
maneras ya te voy comentando que la solucion que podamos encontrar no sera
nada eficiente :(


Salu2
Maxi


"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:%
Hola Maxi,

No pasa nada, simplemente relanzaba la pregunta a ver si alguien mas tenia
idea.

Si, la idea es poner en un solo string (dentro de un registro), la
concatenacion de los registros que me devuelve otra consulta.

Basicamente este requerimiento lo tengo para un Report, ya que no puedo
hacer mas sub-reports y solo me quedaria esto, es decir, conseguir una
lista
de nombres que saldrian de otra consulta.

He mirado un poco por SQL Server Central, pero voy un poco perdido con el
ingles, si encuentras algo, me lo comentas, aunque intentare buscar algo
yo
tambien.

Mil gracias otra vez.
Oriol.

"Maxi" escribió en el mensaje
news:
Hola, perdon!! se me paso el hilo :(, lo que nbo entiendo es esa
concatenacion en una sola linea, si tienes 2 registros los quieres ver en
una sola linea? la verdad que nunca lo hice asi, pero de ser asi habria


que
buscar en www.sqlservercentral.com que seguramente hay alguna query que
lo
resuelva.

Si no lo encuentras me avisas y te busco a ver si hay uno :-)


Salu2
Maxi


"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:
> Hola Maxi,
>
> No, las , no separan registros. Lo que queremos es que en la tercera
> columna
> de los resultados sea una concatenacion de los registros de otra


consulta.
>
> A ver si puedo explicarme un poco mejor. Tenemos una consulta que nos
> devuelve el numero de trabajadores en cada puesto, pero tambien
> queremos
> tener los nombres de dichos trabajadores. Como esto esta en otra tabla,
> tendriamos que hacer otra consulta, pero nos interesa mucho tenerlo en


la
> misma tabla de resultados.
>
> Con lo cual, el tercer registro de los resultados donde aparecen los
> nombres
> seria una concatenacion de los resultados de una consulta. Por ejemplo,


la
> consulta de la primera fila seria "SELECT Nombre FROM Trabajadores
> WHERE
> puesto=Programador" y aqui nos devolveria 2 registros con José y Pepe,
> y
> queremos poner esto como una concatenacion en el registro de la tabla
> resultados.
>
> No se si me explico, creo que si.
>
> Me he mirado el link, pero me parece que no es exactamente lo que
> necesito.
>
> Gracias de antemano,
> Oriol.
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, me imagino que las , separan registros. Pues si es asi se te va
>> a
>> hacer complejo manejarlo de esta manera, yo en estos casos armo en sql


la
>> base de los datos y lo resuelvo luego en el cliente.
>>
>> Tambien te voy a pasar este link, quizas pueda ayudarte en algo
>>
>>
>


http://www.configuracionesintegrale...p?articulo'5
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
>> news:eg6r$
>> > Hola a todos,
>> >
>> > Me han comentado que existe una instrucción SQL de agrupamiento
>> > (como
>> > COUNT
>> > o PIVOT), que te permite agrupar registros dentro de un solo campo
>> > separados
>> > por comas, pero no he encontrado nada en los foros de consultas SQL


que
> he
>> > consultado.
>> >
>> > La consulta en cuestión seria de este tipo
>> >
>> > SELECT NombrePuesto, COUNT (IdTrabajador) AS TotalTrabajadores,
>> > "La instrucción" ("Los campos") AS NombreTrabajadoresdelPuesto
>> > FROM Puestos INNER JOIN
>> > Trabajadores ON Puestos.pu_IdPuesto = Trabajadores.tra_IdPuesto
>> >
>> > y tendría que devolver algo parecido a esto, o esa es la idea :-p
>> >
>> > NombrePuesto TotalTrabajadores NombreTrabajadoresdelPuesto
>>

>> > Programador 2 José, Pepe
>> > Webmaster 3 María,
> Gertrudis,Juan
>> > Administrador 1 Pedro
>> >
>> > Muchas gracias a todos de antemano.
>> >
>> > Oriol.
>> >
>> >
>>
>>
>
>






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