2016-07-29 190 views
0

我试图用一个MDX计算的度量上做列一个case语句。当我将它保存它集即使先生是在标题场进行了一些记录的新列一切的Test2MDX Case语句

Case [hist].[title] when "Mr" then "Test1 "Else "Test2"end 

我使用这个代码。任何想法,我可能会出错?

感谢

回答

0

MDX中你可以说:

CASE 
WHEN [hist].[title].CURRENTMEMBER.MEMBER_CAPTION = "Mr" 
    THEN "Test1" 
ELSE "Test2" 
END 

CASE 
WHEN [hist].[title].CURRENTMEMBER 
    IS [hist].[title].[title].&[Mr] 
    THEN "Test1" 
ELSE "Test2" 
END 

'IIF' 是更好,因为默认情况下使用:

IIF( 
[hist].[title].CURRENTMEMBER.MEMBER_CAPTION = "Mr" 
,"Test1" 
,"Test2" 
) 

IIF( 
[hist].[title].CURRENTMEMBER 
    IS [hist].[title].[title].&[Mr] 
,"Test1" 
,"Test2" 
) 

在性能方面: - IS操作最好使用​​
- IIF通常执行比CASE - 如果你可以用的分支之一脱身IIFNULL那么您的计算机会以更快的块模式运行。

因此,这将是最好的:

IIF( 
[hist].[title].CURRENTMEMBER 
    IS [hist].[title].[title].&[Mr] 
,"Test1" 
,NULL 
) 
+0

感谢,但是当我尝试,我得到了相同的结果都记录显示测试2 – rory83

+0

@ rory83行 - 我的错误 - 你要么需要使用'MEMBER_CAPTION'财产或者更好地给我们“IS”操作员,并将确切的成员拖到操作员的右侧 - 我会猜出全名。 – whytheq