先週の注文と配達したドライバーの ID を含む注文テーブルがあります。次のようになります。
ORDERDATE, ORDERNO, DRIVER
23/01/2013, 901398503, 1
23/01/2013, 901332159, 1
23/01/2013, 901334158, 2
24/01/2013, 901338455, 1
25/01/2013, 902907513, 1
25/01/2013, 902338553, 2
25/01/2013, 903936533, 2
27/01/2013, 903944523, 1
27/01/2013, 903981522, 2
27/01/2013, 911334951, 1
28/01/2013, 911338851, 1
28/01/2013, 911339259, 1
28/01/2013, 912332555, 2
28/01/2013, 912336650, 2
29/01/2013, 912337655, 1
29/01/2013, 913969582, 1
29/01/2013, 913973583, 1
29/01/2013, 913982552, 1
29/01/2013, 916379158, 1
ORDERDATE、ORDERCOUNT、DRIVER_1_COUNT、DRIVER_2_COUNT を選択したいです。
だから、日付| 注文合計 | ドライバー 1 の合計注文数 | ドライバー 2 の合計注文数
また、ORDERDATE、ORDERCOUNT、DRIVER_1_COUNT、または DRIVER_2_COUNT が 0 (または null) の場合は、ゼロが必要です。
(オラクルでは)先週の各日の日付を選択し、次のように各日の注文数(プレースホルダー)をゼロにすることができます:
select
TRUNC(NEXT_DAY(sysdate,'SUNDAY')-7 +i) ORDERDATE,
0 as ORDERCOUNT
from
(select rownum i from all_objects where rownum < 8)
この出力を使用して、最終結果に欠落している日がないことを確認できるはずです (この例では 26 日に注文はありません)。
ORDERDATE,ORDERCOUNT
23/01/2013,0
24/01/2013,0
25/01/2013,0
26/01/2013,0
27/01/2013,0
28/01/2013,0
29/01/2013,0
この出力が必要です:
ORDERDATE,ORDERCOUNT,DRIVER_1_COUNT,DRIVER_2_COUNT
23/01/2013,3,2,1
24/01/2013,1,1,0
25/01/2013,3,1,2
26/01/2013,0,0,0
27/01/2013,3,2,1
28/01/2013,4,2,2
29/01/2013,5,5,0
ORDERDATE & ORDERCOUNT(simple sum) を取得し、他のクエリと結合して、日数の欠落を回避できますが、各ドライバーの合計方法もわかりません。
よろしくお願いします。
エド