Hay bastantes soluciones en SO:
- ¿Cómo incluyo filas vacías en una sola consulta SQL GROUP BY DAY(date_field)?
- generar filas vacias incluso si está vacío entre 2 fechas
- Agrupar SQL al incluir filas vacías
- MySQL GROUP BY y llenar filas vacías
- Resumir por semana, incluso para filas vacías
Una solución es para ti otra tabla que contiene todas las fechas posibles/relevantes. Puede encontrar una implementación aquí:https://stackoverflow.com/a/7262803/1085891
Si se ejecuta con frecuencia, sería más eficiente almacenar las fechas. Sin embargo, para obtener un informe rápido, puede generar las fechas que necesita y unir el resultado a la tabla en la que está buscando.
- t-sql obtener todas las fechas entre 2 fechas
- SQL Server:Cómo seleccionar todos los días en un rango de fechas incluso si no existen datos para algunos días
- Obtener todas las fechas en intervalo de fechas en SQL Server