Estoy usando MS SQL Server pero recibo soluciones comparativas de otras bases de datos.¿Cómo incluyo las filas vacías en una sola consulta SQL GROUP BY DAY (date_field)?
Esta es la forma básica de mi consulta. Devuelve el número de llamadas por día a partir de la tabla 'incidentsm1':
SELECT
COUNT(*) AS "Calls",
MAX(open_time),
open_day
FROM
(
SELECT
incident_id,
opened_by,
open_time - (9.0/24) AS open_time,
DATEPART(dd, (open_time-(9.0/24))) AS open_day
FROM incidentsm1
WHERE
DATEDIFF(DAY, open_time-(9.0/24), GETDATE())< 7
) inc1
GROUP BY open_day
Estos datos son utilizados para dibujar un gráfico de barras, pero si no hay llamadas en un día determinado de la semana, no hay ningún resultado fila y, por lo tanto, no hay barra, y el usuario dice, "¿por qué el gráfico solo tiene seis días y se salta de sábado a lunes?"
De alguna manera necesito UNION TODO con una fila en blanco de cada día o algo así, pero no puedo resolverlo.
Estoy limitado a lo que puedo hacer con una declaración de SQL y tengo acceso de solo lectura, así que no puedo crear una tabla temporal ni nada.
Simplemente agréguela a la capa de la interfaz de usuario. http://stackoverflow.com/questions/346659/what-are-the-most-common-sql-anti-patterns/346850#346850 –
lo siento, lo haría, pero es imposible con la herramienta comercial de lujo que estoy obligado a utilizar. – Nathan