2013-01-23 3 views
1

두 개의 차원과 하나의 측정 값 그룹이 있습니다 : [시간]. [일], [시나리오]. [시나리오] 및 두 개의 계수, [측정 값]. [CleanPrice] 와 [측정] [DirtyPrice]MDX에서 여러 조인 그룹 교차 조인

나는 잘 작동 다음과 같은 결과로 시작

:.

    01-01-2011 01-01-2012 
Base CleanPrice  100   100 
Base DirtyPrice  100   100 
Up1% CleanPrice  101   101 
Up1% DirtyPrice  101   101 

내가 정말 생산 할 하면 측정을 표시하는 계산 된 구성원 및 델타입니다 현재 시나리오와 기본 시나리오 사이.

결과가 같아야 원하는 다음

      01-01-2011 01-01-2012 
Base CleanPrice Value 100   100 
Base CleanPrice Delta 0   0 
Base DirtyPrice Value 100   100 
Base DirtyPrice Delta 0   0 
Up1% CleanPrice Value 101   101 
Up1% CleanPrice Delta 1   1 
Up1% DirtyPrice Value 101   101 
Up1% DirtyPrice Delta 1   1 

나는 이런 식으로 뭔가를 시도하지만 측정 값 그룹에 가입 교차 할 수 없습니다 :

WITH MEMBER [Value] as [Measures].CurrentMember 
MEMBER [Delta] as [Measures].CurrentMember - ([Scenario].[Scenario].&[0], [Measures].CurrentMember) 
SELECT NON EMPTY 
{ [Time].[Day].&[2011-01-01T00:00:00], [Time].[Day].&[2012-01-01T00:00:00] } 
ON COLUMNS, 
{ [Scenario].[Scenario].&[0], [Scenario].[Scenario].&[1] } * 
{ [Measures].[CleanPrice], [Measures].[DirtyPrice] } * 
{ [Value], [Delta] } 
ON ROWS 
FROM Results 
나는 두 가지를 만들

계산을 현재 측정 값이 될 [Value], 현재 측정 값을 가져 오려면 [Delta], 기본 시나리오와 비교하여 해당 측정 값의 차이를 가져옵니다.

깨끗한 가격과 더러운 가격이있는 측정 값 그룹과 두 계산 된 구성원의 측정 값 그룹을 결합하고 싶습니다. 그러나이 방법은 불가능합니다.

원하는 결과를 얻을 수있는 방법이 있습니까? 나는 실제로 많은 것들을 가지고 있기 때문에 [CleanPrice Delta]와 [DirtyPrice Delta]를 만드는 것을 피하고 싶습니다.

답변

1

한 가지 방법은 과 [Delta]의 두 멤버가있는 [Metric] 등의 새로운 차원을 만드는 것입니다. 그리고 다음과 같은 라인을 따라 계산 스크립트에 MDX 쓰기 :이 후 자동으로 [Scenario] 차원에 연결되어있는 모든 조치를 통해 작동합니다

SCOPE ([Metric].[Delta], [Scenario].[Scenario].[Scenario]); 
    this = ([Metric].[Value], [Scenario].[Scenario].currentmember) 
      - ([Metric].[Value], [Scenario].[Scenario].&[0]); 
END SCOPE; 

.