Istnieje kilka rozwiązań na SO:
- Jak uwzględnić puste wiersze w pojedynczym zapytaniu SQL GROUP BY DAY(date_field)?
- generuj puste wiersze nawet jeśli puste między 2 datami
- Grupa SQL Uwzględniając puste wiersze
- MySQL GROUP BY i wypełnianie pustych wierszy
- Podsumowanie według tygodnia, nawet dla pustych wierszy
Jedno rozwiązanie to kolejna tabela, która zawiera wszystkie możliwe/odpowiednie daty. Jedną z implementacji można znaleźć tutaj:https://stackoverflow.com/a/7262803/1085891
W przypadku częstego uruchamiania bardziej wydajne byłoby przechowywanie dat. Jednak w celu uzyskania szybkiego raportu możesz wygenerować potrzebne daty i dołączyć wyniki do tabeli, według której szukasz.
- t-sql pobierz wszystkie daty między 2 datami
- SQL Server:Jak wybrać wszystkie dni w zakresie dat, nawet jeśli dane nie istnieją przez kilka dni
- Pobierz wszystkie daty w zakres dat w SQL Server