SQL - COUNT aplicado a varias tablas

 
Vista:

COUNT aplicado a varias tablas

Publicado por Chuse (3 intervenciones) el 16/05/2011 23:27:46
Buenas noches a todos y gracias por la ayuda que brindáis a los que no andamos muy sueltos en este campo.

Mi consulta es la siguiente:

Tengo tres tablas que, resumidamente, pueden ser algo así:

tbl_Equipos (idEquipo, nombreEquipo)
tbl_Programadores (idProgramador, nombreProgramador, equipo)
tbl_Analistas (idAnalista, nombreAnalista, equipo)

El campo equipo (foreign key) de las dos tablas Programadores y Analistas está relacionado con el idEquipo de la tabla Equipos (primary key)

Cada equipo está formado por varios analistas y varios programadores y lo que necesito es crear una consulta (realmente sería una vista para MySQL, aunque supongo que sabré adaptarla) que me devuelva el número de programadores y analistas por cada uno de los equipos. Más o menos:

Equipo----------Programadores-------------Analistas
-------------------------------------------------------------------
EQ01-----------------------2-----------------------------1----
EQ02-----------------------5-----------------------------2----
EQ03-----------------------9-----------------------------4----

Son más bien justitos mis conocimientos en este tema por lo que agradecería vuestra ayuda.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

COUNT aplicado a varias tablas

Publicado por Leonardo Josué (1173 intervenciones) el 17/05/2011 17:28:53
Hola Chuse:

Puedes intentar con esto:
1
2
3
4
5
6
7
select TE.nombreEquipo, TP.Programadores, TA.Analistas from tbl_Equipos TE
left join
(select equipo, count(*) Programadores from tbl_Programadores group by equipo) TP
on TE.idEquipo = TP.equipo
left join
(select equipo, count(*) Analistas from tbl_Analistas group by equipo) TA
on TE.idEquipo = TA.equipo


Observa que utilizo un left join para poder considerar aquellos Equipos que pudieran no tener asignado ningún programador o ningún analista.

Haz la prueba y espero tus comentarios.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

COUNT aplicado a varias tablas

Publicado por Chuse (3 intervenciones) el 17/05/2011 18:57:54
Bueno, la prueba es satisfactoria totalmente, y comentarios........ pues que, como siempre, Leonardo Josué, eres infalible.

Ahora toca estudiar la sentencia y comprenderla en su totalidad.

Muy agradecido, un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

COUNT aplicado a varias tablas

Publicado por Leonardo Josué (1173 intervenciones) el 17/05/2011 20:52:51
Jejeje, tanto así como infalible, pues no lo creo, pero me he topado en varias ocasiones con situaciones similares y es cosa de tratar de adaptarlas. Dale un vistazo a la consulta, te recomiendo que ejecutes por separado las subconsultas que aparecen en los LEFT JOIN's, para que veas como se comportan, el resto es simplemente unir cada parte. Si tienes alguna duda en cuanto al planteamiento o la lógica que utilicé lo comentas, para tratar de ayudarte a comprender mejor.

saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

COUNT aplicado a varias tablas

Publicado por Chuse (3 intervenciones) el 18/05/2011 12:22:54
Así lo haré, Leo, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar