レポートデータを取得しようとしています
これは私のクエリです:
SELECT sourceCode as "Source", to_char(myTimestamp, 'YYYY-MM-DD') as "Date", statusCode as "Status", count(*) as "Count"
FROM archive_table
WHERE myTimestamp BETWEEN TO_TIMESTAMP('2013-09-30','yyyy-mm-dd') AND TO_TIMESTAMP('2013-10-05','yyyy-mm-dd')
GROUP BY sourceCode, to_char(myTimestamp, 'YYYY-MM-DD'), statusCode
ORDER BY 1, 2, 3
これは出力です:
Source Date Status Count
Source1 9/30/2013 C 10
Source1 10/1/2013 C 8
Source1 10/2/2013 C 24
Source1 10/2/2013 O 4
Source2 10/4/2013 C 22
Source2 10/4/2013 O 7
Source3 10/1/2013 C 2
Source4 9/30/2013 C 15
Source4 9/30/2013 O 15
Source4 10/1/2013 C 24
Source4 10/1/2013 O 12
私が見たいのは、すべてのカウントが 0 であることです。たとえば、2013 年 9 月 30 日の日付の Source1 にはデータベースにステータス 0 がないため、表示したいと思います。
Source1 9/30/2013 O 0
別の例として、2013 年 9 月 30 日の時点で Source2 が存在するため、次のように表示されます。
Source2 9/30/2013 O 0
Source2 9/30/2013 C 0
これを行う簡単な方法があることを願っています。追加情報として、「ソース」は 4 つしかなく、ステータスは「O」または「C」のいずれかです。もちろん、日付範囲は where 句で提供されます。