SQL - consulta con Count, group by y tambien mostrar los que tienen 0 registros

   
Vista:

consulta con Count, group by y tambien mostrar los que tienen 0 registros

Publicado por José Luis (3 intervenciones) el 03/02/2016 16:34:04
Por favor su ayuda, tengo 2 tablas

TB_Departamento
id_dep| Nombre
1 rrhh
2 Seguridad
3 Produccion

TB_Incidentes
tipo_inc| id_dep
1 2
2 2
1 3
2 2
2 3
1 3
1 3
y quiero hacer una consulta parecida a esta:
1
2
3
select D.Nombre, count(I.tipo_incidente) as Num from TB_Departamento D, TB_Incidente
where  D.id_dep=I.id_dep
group by D.Nombre

y me da este resultado:

Seguridad 3
Produccion 4

pero yo quiero que me de este:

rrhh 0
Seguridad 3
Produccion 4

de antemano muchas gracias.
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
Imágen de perfil de Isaias

consulta con Count, group by y tambien mostrar los que tienen 0 registros

Publicado por Isaias (690 intervenciones) el 03/02/2016 20:43:14
¿En que motor de base de datos?, deberias hacer uso del INNER JOIN, en lugar de =
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

consulta con Count, group by y tambien mostrar los que tienen 0 registros

Publicado por José Luis (3 intervenciones) el 04/02/2016 15:43:54
el Motor es MS-SQL 2008
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

consulta con Count, group by y tambien mostrar los que tienen 0 registros

Publicado por Rafael (83 intervenciones) el 04/02/2016 11:27:03
Prueba con:

1
2
3
select D.Nombre, count(I.tipo_incidente) as Num
from TB_Departamento D OUTER JOIN TB_Incidente I ON D.id_dep=I.id_dep
group by D.Nombre

Saludos

Pd. Si te sirve esta info a mi me sirve un +1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

consulta con Count, group by y tambien mostrar los que tienen 0 registros

Publicado por Jose Luis (3 intervenciones) el 04/02/2016 15:51:05
Excelente, solo le agregue left y corrió de maravilla (MOTOR sql2008), justo lo q buscaba, gracias Rafael

1
2
3
select D.Nombre, count(I.tipo_incidente) as Num
from TB_Departamento D LEFT OUTER JOIN TB_Incidente I ON D.id_dep=I.id_dep
group by D.Nombre
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