Revisando tus datos:
Código SQL:
Ver originalSELECT 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
cve 0's 1's Total
00100 2 8 10
00197 3 0 3
12111 6 1 7
14396 1 1 2
14794 0 1 1
El registro en negritas no tiene un valor 0 tiene nada mas un valor en 1 como quieres que este aparezca en los 0's si no tiene registro en esa columna???
Ya que si quieres que aparezca el registro con un conteo de 0 se puede hacer algo como esto:
Código SQL:
Ver originalCREATE TABLE #temp
(
nombre VARCHAR(20),
valor INT
)
INSERT INTO #temp VALUES ('Libras',1)
INSERT INTO #temp VALUES ('Libras1',0)
INSERT INTO #temp VALUES ('Libras1',0)
INSERT INTO #temp VALUES ('Libras2',1)
INSERT INTO #temp VALUES ('Libras2',1)
INSERT INTO #temp VALUES ('Libras1',0)
INSERT INTO #temp VALUES ('Libras1',1)
INSERT INTO #temp VALUES ('Libras3',0)
INSERT INTO #temp VALUES ('Libras3',0)
INSERT INTO #temp VALUES ('Libras3',1)
SELECT DISTINCT nombre, 0 AS total FROM #temp WHERE nombre NOT IN(
SELECT nombre
FROM #temp WHERE valor=0 GROUP BY nombre
)
UNION
SELECT nombre, COUNT(*) AS total
FROM #temp WHERE valor=0 GROUP BY nombre
Resultado:
nombre total
Libras 0
Libras1 3
Libras2 0
Libras3 2
Si te fijas para Libras y Libras2 no hay registros con un cero por lo cual aparecerian con 0 ceros :P