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

SSAS MDX Calculated Measure Based on Related Dimension Attribute Value

我有一个度量 [Measures].[myMeasure],我想根据相关的属性值创建多个衍生工具。
例如如果相关 [Location].[City].[City].Value = "Austin" 那么我希望新计算的度量为 return [Measures].[myMeasure] 的值,否则,我希望新计算的度量为 return 0。

此外,我需要正确聚合的度量,即对所有叶级值求和以创建总数。

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

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

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

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

要添加更多上下文,请考虑带有金额字段的交易 table。我想根据相关账户将该金额转换为付款、存款、return 等措施。

我不知道答案,只是几个一般的帮手:

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
);