2012-04-16 2 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 

데이터 소스는 관계형, 그래서 나는 이런 식으로 뭔가 될 것 SQL 매년 두 쿼리 항목 작성 :

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

가 그럼 난 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     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 

내 실수는 현재와 지난 해에 대한 쿼리를 조인 할 때 현재 연도의 달을 선택하는 것이었다 그대로 남아있다.

관련 문제