?
我想创建一个交叉表,其中 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 个查询。
- 年份2012查询。商店
=
年2011查询。店 - 年份2012查询。月份
=
年份2011查询。月 - 年份2012查询。年
>
年2011查询。年
并将两侧的基数设置为 0..n,使其成为outer join
。我已经尝试了基数的任何其他可能性,但没有任何效果。问题是,我只得到到四月的月份,当月。所以OUTER JOIN
不起作用。
所以我在想,我的框架管理器模型中的基数可能会发挥作用。这是一个星型模式,基数始终是
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
我怎样才能实现显示去年的完整
我能够自己解决它。FM 模型中的基数保持不变
Dimension (1..1) <--> (1..n) Fact
我的错误是在加入当前和过去一年的查询时选择当前年份的月份。