基于相关维度属性值的 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
);
我有一个度量 [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
);