让我们假设一个简单的场景:一个事实表F,它有两个维度D1和D2。
F D1 D2
10 A B
15 B C
在这种情况下,我使用一个接近于此的表达式定义一个新的计算成员C1:
with member measures.C1 as
sum(
descendants( [D1].[Ds].currentMember, , leaves ),
[myMeasure]
)
select
measures.C1 on 0,
[D2].[Ds].AllMembers on 1
from [MyCube]
如何修改C1以将所有D2成员的所有时间合并到表达式中?
我得到了这个结果:
C1 D2
10 B
15 C
我正在寻找:
C1 D2
35 B
35 C
(当然这是对实际问题的简化,请不要尝试修复C1表达式,只添加代码来获得预期结果,我试过了:
sum(
{ descendants( [D1].[Ds].currentMember, , leaves ),
[D2].[Ds].AllMembers },
[myMeasure]
unsuccesfully)
问候。
答案 0 :(得分:1)
对于此特定示例,请更改以下成员声明。
WITH MEMBER [Measures].[C1] AS
SUM([D1].[Ds].[All], [myMeasure])
这为您的尺寸提供了该维度中的所有内容。然后,应该为D2维度中的每个属性重复该值。
根据问题的标题和部分文字,这只是一个小例子。您可能需要调查scope。它非常强大,你可以用它做一些巧妙的事情。