覆盖计算成员(SSAS)上的上下文维度

时间:2012-05-08 01:07:08

标签: ssas mdx

让我们假设一个简单的场景:一个事实表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)

问候。

1 个答案:

答案 0 :(得分:1)

对于此特定示例,请更改以下成员声明。

WITH MEMBER [Measures].[C1] AS
SUM([D1].[Ds].[All], [myMeasure])

这为您的尺寸提供了该维度中的所有内容。然后,应该为D2维度中的每个属性重复该值。

根据问题的标题和部分文字,这只是一个小例子。您可能需要调查scope。它非常强大,你可以用它做一些巧妙的事情。