基于相关维度属性值的SSAS MDX计算度量

时间:2016-02-24 23:41:00

标签: ssas mdx

我有一个度量[Measures].[myMeasure],我想根据相关的属性值创建几个派生词 例如如果相关[Location].[City].[City].Value = "Austin",那么我希望新计算的度量返回[Measures].[myMeasure]的值,否则,我希望新计算的度量返回0.

此外,我需要正确聚合的度量意味着将所有叶级别值相加以创建总计。

以下工作在叶级或只要当前成员设置为Austin ...

Create Member CurrentCube.[Measures].[NewMeasure] as
iif(
[Location].[City].currentmember = [Location].[City].&[Austin], 
[Measures].[myMeasure], 
0
);

这有两个问题 1 - 我不总是[Location].[City]在上下文中 2.选择多个城市时,返回0.

我正在寻找一种解决方案,无论相关维度是否在上下文中都可以使用,并且会根据与上述类似的公式对原子值求和来累积。

要添加更多上下文,请考虑具有金额字段的事务表。我希望根据相关帐户将该金额转换为付款,存款,退货等措施。

1 个答案:

答案 0 :(得分:1)

我不知道答案,只有几位普通助手:

1与成员比较时,您应该使用IS而不是= 2你应该使用null而不是0 - 0 / NULL是有效的,但是使用0会慢慢增加很多,因为计算会被解雇更多次。 (这可能有助于你问题的第二部分)

Create Member CurrentCube.[Measures].[NewMeasure] as
iif(
[Location].[City].currentmember IS [Location].[City].&[Austin], 
[Measures].[myMeasure], 
NULL
);