MDX案例陈述

时间:2016-07-29 11:19:10

标签: excel mdx powerpivot

我正在尝试使用MDX计算的度量来对列执行case语句。

我正在使用此代码:

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

当我保存它时,它将所有内容设置为新列中的Test2,即使Mr在某些记录的标题字段中。我可能会出错的任何想法?

由于

1 个答案:

答案 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
)