2013-01-23 36 views
1

我有兩個尺寸,並且一個測量組:。[時間] [天],[方案] [方案]和含有兩個措施的措施基,[處理方法] [除息價格]和[措施] [含息價格]交叉聯接多個度量值組中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 

我試圖這樣的事情,但它是不可能的CROSS JOIN測度組:

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 

我創建了兩個計算成員,將[價值]簡單地作爲當前度量,並且Δ採取當前度量,並且針對該基礎場景獲得該度量的差異。

我想CROSS JOIN具有淨價和全價,用測量組兩個計算成員的度量值組,但這是不可能的。

有沒有什麼辦法可以產生想要的結果?我想避免制定措施[CleanPrice Delta]和[DirtyPrice Delta],因爲我確實有很多這樣的措施。

回答

1

一種方法是創建一個新維度,例如[Metric],其中有兩個成員[Value][Delta]。然後寫MDX成大意如下的計算腳本:

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

這一操作將自動在鏈接到[Scenario]維度的所有措施工作。