2011-11-23 35 views
0

我想在MDX是基於如下特定維度類型不同的事實數據表返回測量值來編寫一個簡單的CASE語句 -MDX Case語句與不同的衡量產出

WITH MEMBER [Measures].[Amount] AS 
CASE [Dim Trx Type].[Trx Type Id].CURRENTMEMBER 
     WHEN [Dim Trx Type].[Trx Type Id].&[1] THEN [Measures].[Amount - Fact Sale] 
     WHEN [Dim Trx Type].[Trx Type Id].&[2] THEN [Measures].[Amount - Fact Sale] 
     WHEN [Dim Trx Type].[Trx Type Id].&[11] THEN [Measures].[Amount - Fact Usage] 
END 

然後我使用[度量]。[金額]在我的MDX中。這裏的問題是我沒有得到類型11所需的值。如果我將案件移到第一行時,我會得到使用情況的價值,有時還會獲得價值。一個奇怪的行爲,我無法理解。

有人可以幫忙嗎?

+0

MDX擁有IIF的條件,這可能是在這個sitatuon usuful了。 –

+0

使用... CASE當[Dim Trx Type]。[Trx Type Id] .CURRENTMEMBER是[Dim Trx Type]。[Trx Type Id]。&[1] THEN ... – TFD

回答

1

嘗試用CELL計算:

WITH MEMBER [Measures].[Amount] AS [Measures].[Amount - Fact Sale] 
CELL CALCULATION [A] FOR '({[Dim Trx Type].[Trx Type Id].&[1], [Dim Trx Type].[Trx Type Id].&[2]}, [Measures].[Amount])' As ([Measures].[Amount - Fact Sale]) 
CELL CALCULATION [B] FOR '({[Dim Trx Type].[Trx Type Id].&[11]}, [Measures].[Amount])' As ([Measures].[Amount - Fact Usage]) 
+0

謝謝Noe,完美的工作。任何想法爲什麼CASE陳述失敗? – VKarthik

+1

也許,你必須在IS函數中使用其他語法:CASE WHEN [Dim Trx Type]。[Trx Type Id] .CURRENTMEMBER IS [Dim Trx Type]。[Trx Type Id]。&[1] THEN ... 。 –