TENGO UNA TABLA QUE SE LLAMA exp_ti_bitacora_proyectores DONDE ALMACENO BIENES POR MEDIO DE UNA cve_bien Y ALMACENO UN CAMPO LLAMADO revision_proyectores DONDE EL VALOR 0 SIGNIFICA ATENCIÓN Y EL 1 SIGNIFICA REVISIÓN, NECESITO HACER UNA CONSULTA DONDE ME CUENTE EL NUMERO DE ATENCIONES Y REVISIONES QUE A TENIDO CADA BIEN ENTRE UN RANGO DE FECHAS, INCLUSO AQUELLAS QUE ESTEN EN CERO, ES DECIR QUE SI EL BIEN '100' TIENE SOLO UN REGISTRO EN revision_proyectores CON VALOR 1, ME DEVUELVA LO SIGUIENTE:
CVE_BIEN ATENCIONES REVISIONES
100 0 1
ESTO LO HE LOGRADO CON LA SIGUIENTE CONSULTA:
Código SQL:
Ver original
SELECT cve_bien, COUNT(CASE WHEN revision_proyectores = 0 THEN 1 END) AS ATENCIONES_CUANTOS_CEROS, COUNT(CASE WHEN revision_proyectores = 1 THEN 1 END) AS REVISIONES_CUANTOS_UNOS, COUNT(cve_bien) AS TOTALES FROM exp_ti_bitacora_proyectores WHERE (fecha_trabajo BETWEEN CONVERT(DATETIME,'01/02/2016', 102) AND CONVERT(DATETIME,'07/03/2016', 102)) GROUP BY cve_bien
PERO QUIERO UNA DONDE NO UTILICE EL CASE WHEN.... HE HECHO LA SIGUIENTE PERO NO ME DEVUELVE LO MISMO.... ALGUIEN PODRIA DECIRME QUE ME FALTA PARA LOGRARLO? ESQ ME OMITE LOS CEROS
Código SQL:
Ver original
SELECT cve_bien, COUNT(cve_bien) AS ATENCIONES FROM exp_ti_bitacora_proyectores WHERE (fecha_trabajo BETWEEN CONVERT(DATETIME,'01/02/2016', 102) AND CONVERT(DATETIME,'07/03/2016', 102)) AND revision_proyectores = 0 GROUP BY cve_bien