您需要进行以下更改。代替
WHEN [CONTAINER INSTANCE DIMENSION].[Container Size] = ‘20’
</code>
你需要写
WHEN [CONTAINER INSTANCE DIMENSION].[Container Size].CurrentMember.MEMBER_CAPTION = ‘20’.
</code>
在您的查询中,您希望根据容器大小的值选择乘数。为了获得当前正在评估的值,我们使用“Currentmember”。另外,您正在检查CURRENTMEMBER的“MEMBER_CAPTION”属性。您检查该值的方式将不起作用。 MDX将评估
[CONTAINER INSTANCE DIMENSION].[Container Size] = ‘20’
</code>
为true,因为您正在针对值评估维度属性。因此,您的Else子句给出了结果。
以下是AdventureWorks上的示例。
with member
[Measures].[Internet Sales AmountCase]
as
case
when [Product].[Size].CurrentMember.MEMBER_CAPTION = ‘38’ then [Measures].[Internet Sales Amount]1
when [Product].[Size].CurrentMember.MEMBER_CAPTION = ‘40’ then [Measures].[Internet Sales Amount]2
when [Product].[Size].CurrentMember.MEMBER_CAPTION = ‘46’ then [Measures].[Internet Sales Amount]*3
else -99
end
select
{[Measures].[Internet Sales Amount],[Measures].[Internet Sales AmountCase]}
on columns,
([Date].[Month of Year].[Month of Year],[Product].[Size].[38]:[Product].[Size].[70])
on rows
from [Adventure Works]
</code>