0
我试图用一个MDX计算的度量上做列一个case语句。当我将它保存它集即使先生是在标题场进行了一些记录的新列一切的Test2MDX Case语句
Case [hist].[title] when "Mr" then "Test1 "Else "Test2"end
:
我使用这个代码。任何想法,我可能会出错?
感谢
我试图用一个MDX计算的度量上做列一个case语句。当我将它保存它集即使先生是在标题场进行了一些记录的新列一切的Test2MDX Case语句
Case [hist].[title] when "Mr" then "Test1 "Else "Test2"end
:
我使用这个代码。任何想法,我可能会出错?
感谢
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
- 如果你可以用的分支之一脱身IIF
为NULL
那么您的计算机会以更快的块模式运行。
因此,这将是最好的:
IIF(
[hist].[title].CURRENTMEMBER
IS [hist].[title].[title].&[Mr]
,"Test1"
,NULL
)
感谢,但是当我尝试,我得到了相同的结果都记录显示测试2 – rory83
@ rory83行 - 我的错误 - 你要么需要使用'MEMBER_CAPTION'财产或者更好地给我们“IS”操作员,并将确切的成员拖到操作员的右侧 - 我会猜出全名。 – whytheq