Có khá nhiều giải pháp trên SO:
- Làm cách nào để đưa các hàng trống vào một truy vấn SQL GROUP BY DAY (date_field)?
- tạo các hàng trống đồng đều nếu trống giữa 2 ngày
- Nhóm SQL Bằng cách bao gồm các hàng trống
- MySQL GROUP BY và điền vào các hàng trống
- Tóm tắt theo tuần, ngay cả đối với các hàng trống
Một giải pháp đối với bạn là một bảng khác chứa tất cả các ngày tháng có thể có / có liên quan. Có thể tìm thấy một cách triển khai tại đây: https://stackoverflow.com/a/7262803/1085891
Nếu chạy thường xuyên, việc lưu trữ ngày tháng sẽ hiệu quả hơn. Tuy nhiên, để có một báo cáo nhanh, bạn có thể tạo ngày tháng bạn cần và kết hợp đầu ra với bảng bạn đang tìm kiếm.
- t-sql nhận tất cả các ngày giữa 2 ngày
- SQL Server:Cách chọn tất cả các ngày trong phạm vi ngày ngay cả khi không có dữ liệu nào tồn tại trong một số ngày
- Nhận tất cả các ngày trong phạm vi ngày trong SQL Server