Używam MS SQL Server, ale przyjmuję rozwiązania porównawcze z innych baz danych.Jak uwzględnić puste wiersze w jednym zapytaniu SQL GROUP BY DAY (date_field)?
To jest podstawowa forma mojego zapytania. Zwraca liczbę połączeń dziennie z „incidentsm1” tabela:
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
Dane te są wykorzystywane do narysować wykres słupkowy, ale gdyby nie było rozmowy na dany dzień tygodnia, nie ma wynik wiersz, a więc bez paska, a użytkownik jest jak "dlaczego wykres ma tylko sześć dni i przeskoczyć od soboty do poniedziałku?"
W jakiś sposób potrzebuję UNIONA WSZYSTKIEGO z pustym wierszem z każdego dnia lub czegoś podobnego, ale nie mogę tego rozgryźć.
Jestem ograniczony do tego, co mogę zrobić z jednym oświadczeniem SQL i mam dostęp tylko do odczytu, więc nie mogę utworzyć tabeli tymczasowej ani nic.
Wystarczy dodać go do warstwy interfejsu użytkownika. http://stackoverflow.com/questions/346659/what-are-the-most-common-sql-anti-patterns/346850#346850 –
Przepraszam, zrobiłabym to, ale nie jest to możliwe z fantazyjnym narzędziem komercyjnym, do którego jestem zobowiązany posługiwać się. – Nathan