我正在尝试使用MDX计算的度量来对列执行case语句。
我正在使用此代码:
Case [hist].[title] when "Mr" then "Test1 "Else "Test2"end
当我保存它时,它将所有内容设置为新列中的Test2,即使Mr在某些记录的标题字段中。我可能会出错的任何想法?
由于
答案 0 :(得分: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
运算符优于使用.MEMBER_CAPTION = "Mr"
- IIF
通常表现优于CASE
- 如果你可以使用IIF
NULL
的一个分支,那么你的计算很可能会以更快的阻止模式运行。
所以这是最好的:
IIF(
[hist].[title].CURRENTMEMBER
IS [hist].[title].[title].&[Mr]
,"Test1"
,NULL
)