私は MS SQL Server を使用していますが、他のデータベースからの比較ソリューションを歓迎します。
これが私のクエリの基本的な形式です。「incidentsm1」テーブルから 1 日あたりの通話数を返します。
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
このデータは棒グラフを描画するために使用されますが、特定の曜日に通話がなかった場合、結果の行が表示されず棒グラフも表示されず、ユーザーは「なぜグラフには 6 日しか表示されず、土曜日から月曜日にスキップしますか?」
どういうわけか、毎日の空白行などでUNION ALLを実行する必要がありますが、わかりません。
私は 1 つの SQL ステートメントでできることに制限されており、読み取り専用アクセス権を持っているため、一時テーブルなどを作成できません。