我想创建一个交叉表,其中 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
数据源是关系型的,所以我每年创建两个查询项,在 SQL 中会是这样的:
SELECT
shop, month, numberOfOrders
FROM myFactTable
INNER JOIN Dim_date ...
INNER JOIN Dim_shop ...
WHERE Dim_date.year = 2012
然后我用 3 个连接加入这 2 个查询。
- 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
我怎样才能实现,显示完整的去年?