2012-04-16 14 views
1

クロス集計を作成します。ここで、y軸に月があり、x軸に前年と現在の年があります。Cognos RSの年を比較する - 外部結合が機能しない

    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にはこのようなものになるだろう。そして、私は3つの接続で、これらの2つのクエリに参加

SELECT 
shop, month, numberOfOrders 
FROM myFactTable 
INNER JOIN Dim_date ... 
INNER JOIN Dim_shop ... 
WHERE Dim_date.year = 2012 

  • 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     0..n 

にこれを変更し、常に

Dimension Table <--> Fact Table 
1..1     1..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 

私は達成することができます、昨年の完全表示されますか?

答えて

0

私はそれを私自身で解決することができました。 FMモデル内のカーディナリティは

Dimension (1..1) <--> (1..n) Fact 

私のミスは、現在と過去の年のためのクエリを結合するとき、現在の年の月を選択した手つかずのまま。

関連する問題