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

#6 Oriol
10/02/2005 - 09:40 | Informe spam
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
#7 Oriol
15/02/2005 - 09:52 | Informe spam
Alguna idea sobre el tema?

Gracias de antemano.
Oriol.

"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
#8 Oriol
15/02/2005 - 09:52 | Informe spam
Alguna idea sobre el tema?

Gracias de antemano.
Oriol.

"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
#9 Maxi
15/02/2005 - 13:16 | Informe spam
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
#10 Maxi
15/02/2005 - 13:16 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida