Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/03/2010, 20:17
Avatar de gersveo
gersveo
 
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 9 meses
Puntos: 5
Ayuda con consulta

Cualquier ayuda o indicio me sirve. Aunque es algo que una vez hice pero ya no me acuerdo.

Tengo tres tablas:
  1. persona (nombre_persona, id_persona)
  2. cargos (nombre_cargo, id_cargo, id_persona_lider)
  3. persona_cargos (id_cargo, id_persona)
una persona puede liderar uno o varios cargos y un cargo es solo liderado por una persona.

una persona puede participar o pertenecer a uno o varios cargos y en a un cargo puede pertenecer una o varias personas.

PERSONA lidera CARGOS (uno a varios)
PERSONA participa CARGOS (varios a varios) ==> PERSONA_CARGOS

Ahora lo que quiero hacer es una consulta que me muestre el nombre del cargo, nombre del lider de ese cargo y la cantidad de personas que participan de ese cargo(count()). Se debe incluir en el resultado los cargos que aun no tienen participantes osea cantidad=0.

Código SQL:
Ver original
  1. SELECT COUNT(pc.id_cargo) AS cantidad, p.nombre_persona, c.nombre_cargo
  2. FROM persona p, cargo c, persona_cargo pc
  3. WHERE p.id_persona=c.id_persona_lider AND
  4.               pc.id_cargo=c.id_persona
  5. ORDER BY pc.id_cargo

esta consulta me devuelve los resultados pero no me cuenta los cargos que aún no tienen participantes.