SQL Server - COUNT: Cómo sacar una fila de resultados aunque la cuenta sea 0

 
Vista:

COUNT: Cómo sacar una fila de resultados aunque la cuenta sea 0

Publicado por FJM (3 intervenciones) el 06/05/2013 18:13:01
Hola,
Me sería de bastante utilidad saber si se puede sacar de alguna manera una fila con los resultados aunque el valor de la cuenta sea nulo.
Por ej., como en las horas 3 y 5no hay valores, no salen esas filas y me vendría bien que salieran con el valor de la hora y luego 0

FECHA____HORA____Operados
01/04/2013____0____ 38
01/04/2013____ 1____ 4
01/04/2013____ 2____ 2
01/04/2013____ 4____ 8
01/04/2013____ 6____ 16

SELECT (CONVERT (VARCHAR, server_date,103)) AS FECHA , (DATEPART(HOUR, server_date)) AS HORA, COUNT (*) AS Operados

GROUP BY (CONVERT (VARCHAR, server_date,103)),(DATEPART(HOUR, server_date))
ORDER BY 1,2

Me gustaría poder sacarlo así:
FECHA____ HORA____ Operados
01/04/2013____ 0____ 38
01/04/2013____ 1____ 4
01/04/2013____ 2____ 2
01/04/2013____ 3____ 0
01/04/2013____ 4____ 8
01/04/2013____ 5____ 0
01/04/2013____ 6____ 16

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 Islas Gonzalez
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

COUNT: Cómo sacar una fila de resultados aunque la cuenta sea 0

Publicado por Isaias Islas Gonzalez (4558 intervenciones) el 08/05/2013 04:50:00
Muy sencillo, cuando tu valor sea NULL, conviertelo a 0 (cero)

ISNULL(COUNT(*), 0) AS Operados
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

COUNT: Cómo sacar una fila de resultados aunque la cuenta sea 0

Publicado por FJM (3 intervenciones) el 08/05/2013 08:59:43
Gracias Isaias, pero no me funciona, sique saliendo igual. Yo creo que al no salir ningún dato de la segunda columna (HORA) en alguna hora en concreto, ya no aparece como resultado.
Tengo otras consultas con el mismo problema, por ejemplo, uno que cuenta número de interacciones por regiones y cuando el resultado de la cuenta es nulo, no aparece la fila de esa región. (SELECT region, COUNT (interacciones))
Lo único que se me ha ocurrido para solucionarlo es usar un Excel intermedio con la lista de valores FIJOS y usar función BUSCARV
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
Imágen de perfil de Ella Ilona

COUNT: Cómo sacar una fila de resultados aunque la cuenta sea 0

Publicado por Ella Ilona (3 intervenciones) el 12/05/2013 23:33:17
Se puede preparar una tabla con la lista completa de horas deseadas y se haría LEFT JOIN
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

COUNT: Cómo sacar una fila de resultados aunque la cuenta sea 0

Publicado por FJM (3 intervenciones) el 13/05/2013 13:42:40
Gracias Ella. O no sé hacerlo o no me funciona...

Pongo un ejemplo con regiones (que es más fácil que por horas)
Tabla con todas las regiones--> regiones
Ejecuto algo así, pero me siguen sin salir las regiones que no tienen ninguna interacción:

SELECT regiones.region_id, COUNT (interacciones.interaccion_id)

FROM regiones LEFT JOIN contrato ON regiones.region_id=contrato.region_id
LEFT JOIN interacciones ON interacciones.contrato_id=contrato.contrato_id

WHERE ...
GROUP BY regiones.region_id


Gracias
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