Tôi đang sử dụng MS SQL Server nhưng chào đón các giải pháp so sánh từ các cơ sở dữ liệu khác.Làm cách nào để bao gồm các hàng trống trong một truy vấn SQL GROUP BY DAY (date_field) duy nhất?
Đây là hình thức cơ bản của truy vấn của tôi. Nó trả về số lượng các cuộc gọi mỗi ngày từ 'incidentsm1' bảng:
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
Những thông tin này được sử dụng để vẽ một biểu đồ hình cột, nhưng nếu không có cuộc gọi trên một ngày nhất định trong tuần, có kết quả không hàng và do đó không có thanh, và người dùng là như thế, "tại sao đồ thị chỉ có sáu ngày và bỏ qua từ thứ bảy đến thứ hai?"
Bằng cách nào đó, tôi cần UNION ALL với một hàng trống từ mỗi ngày hoặc một cái gì đó tương tự, nhưng tôi không thể tìm ra.
Tôi bị ràng buộc với những gì tôi có thể làm với một câu lệnh SQL và tôi có quyền truy cập chỉ đọc vì vậy tôi không thể tạo bảng tạm thời hoặc bất kỳ thứ gì.
Chỉ cần thêm nó trong lớp giao diện người dùng của bạn. http://stackoverflow.com/questions/346659/what-are-the-most-common-sql-anti-patterns/346850#346850 –
xin lỗi, tôi sẽ, nhưng không thể với công cụ thương mại ưa thích mà tôi được yêu cầu sử dụng. – Nathan