比较 Cognos RS 中的年份 - 外部连接不起作用



我想创建一个交叉表,其中 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

我的错误是在加入当前和过去一年的查询时选择当前年份的月份。

最新更新