我有一个度量[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.
我正在寻找一种解决方案,无论相关维度是否在上下文中都可以使用,并且会根据与上述类似的公式对原子值求和来累积。
要添加更多上下文,请考虑具有金额字段的事务表。我希望根据相关帐户将该金额转换为付款,存款,退货等措施。
答案 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
);