0

让我们假设一个简单的场景:一个具有两个维度 D1 和 D2 的事实表 F。

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]

不成功)

问候。

4

1 回答 1

1

对于此特定示例,将您的成员语句更改为以下内容。

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

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

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

于 2012-05-09T18:52:21.470 回答