Mi duda surge a la hora de contar los registros de una tabla agrupados por 2 campos y coincidentes con otras 2 tablas externas, contando también los que no tienen registros como 0.
Me explico mejor. Tengo una tabla 'servicios' que tiene, entre otre otros, 3 campos clave para mi consulta. Estos son empresa, caracter y tipo.
Resulta que yo soy el coordinador regional de esta empresa y en mi comunidad tengo varias empresas a mi cargo. Hay varios tipos de servicios que ofrecemos y estos servicios pueden ser de 2 caracteres, públicos o privados.
Como ya os he dicho, yo llevo varias empresas, pero me encuentro situado en una(tecnico, id_empresa), aunque esta empresa pertenece a la comunidad autónoma que abarca todas.
Ahora, debería saber el número de servicios registrados de cada tipo y caracter sólo de las empresas de mi ámbito.
Algo como ésto:
Código SQL:
Ver original
tipos | Caracter | COUNT(*) ------------------------------------------ tipo1 | Público | ------------------------------------------- tipo1 | Privado | ------------------------------------------ tipo2 | Público | ------------------------------------------- tipo2 | Privado | --------------------------------------------- tipo3 | Público | ----------------------------------------------- tipo3 | Privado |
Ahí deben aparecer todos los tipos de la tabla tipos con los 2 caracteres, hayan o no servicios relacionados.
My consulta en estos momentos es
Código SQL:
Ver original
SELECT nombre_tipo, nombre_caracter, COUNT(*) FROM servicios s(v), tipos t(tv), caracte c(cv) WHERE s.id_tipo = t.id_tipo AND s.id_caracter = c.id_caracter AND s.id_empresa IN(SELECT e.id_empresa FROM empresas e WHERE id_comunidad IN(SELECT id_comunidad FROM empresas e, tecnicos t WHERE e.id_empresa = t.id_empresa AND id_tecnico = '$id_tec')) AND s.id_caracter IS NOT NULL GROUP BY s.id_tipo, s.id_caracter
Esto me arroja sólo el resultado de los tipos de los que hay servicios realizados, pero los otros nada. Y lo que me gustaría sería listar todos los tipos, los caracteres por tipo y el número de servicios aunque sea 0.
Me he explicado bien? Espero no haberos aburrido.
Un saludo y gracias!!