Y 軸に月があり、X 軸に前年と今年のクロス集計を作成したいと考えています。
2011 | 2012
Shop_1 | Jan | 123 | 456
Feb | 789 | 1011
... | ... | ...
Dez | 234 | 454 (for the current year, the future months are either filled with predicted numbers or NULL)
----------------------------------
Shop_2 | Jan | 264 | 23409
... | ... | ...
Dez | 234 | 454
データ ソースはリレーショナルなので、毎年 2 つのクエリ アイテムを作成しました。SQL では次のようになります。
SELECT
shop, month, numberOfOrders
FROM myFactTable
INNER JOIN Dim_date ...
INNER JOIN Dim_shop ...
WHERE Dim_date.year = 2012
次に、これら 2 つのクエリを 3 つの接続で結合します。
- year2012query.Shop
=
year2011query.Shop - year2012query.Month
=
year2011query.Month - year2012query.Year
>
year2011query.Year
カーディナリティを両側で 0..n に設定してouter join
. カーディナリティで他の可能性を試しましたが、何も機能しません。問題は、現在の月である 4 月までの月しか取得できないことです。そのため、機能しOUTER JOIN
ていません。
そこで、Framework Manager モデルのカーディナリティが役割を果たすのではないかと考えていました。これはスター スキーマであり、カーディナリティは常に
Dimension Table <--> Fact Table
1..1 1..n
これを
Dimension Table <--> Fact Table
1..1 0..n
レポートのパフォーマンスが許容できなくなり、結果が奇妙になるという影響がありました。
2011 | 2012
Apr | |
May | |
Jun | |
... | |
Dez | |
----------------------------------
Shop_1 | Jan | 123 | 456
Feb | 789 | 1011
Mar | 123 | 123
Apr | 234 | 454
----------------------------------
Shop_2 | Jan | 264 | 23409
Feb | 7123 | 1011
Mar | 1223 | 123
Apr | 3445 | 454
昨年が完全に表示されるようにするにはどうすればよいですか?