次のテーブルがあります。
Dim_Date
Dim_Prod_Cat
Fact_Prod_Sales_By_Cat
私はSQLを持っています:
Select b.date_key,
b.day_name_of_week,
a.name prod_cat_name,
Sum(nvl(a.total_sales,0))
From Dim_Date b
Left Outer Join (Select *
From Fact_Prod_Sales_By Cat sa
Inner Join Dim_Prod_Cat c
On sa.prod_cat_key = c.prod_cat_key) a
ON a.date_key = b.date_key
Group By a.name,b.date_key
問題は、Fact テーブルでたとえば日曜日に売上がない場合、その Prod_cat のレコード行を取得できないことです。
Dim_Date には、5 年間 (3 年前と 2 年間) の日付に相当するすべてのデータがあります。
期待される:
Prod_Cat Week_Day_Name Sales
-------- ------------- -----------
C1 Monday 1000.00
C1 Tuesday 100.00
...
..
C1 Sunday 0.00 <----
..
..
C2 Monday 1000.00
..
..
C2 Saturday 0.00 <---
C2 Sunday 10000.00
...
..