MDX用于计算从2个不同维度给出2个成员属性相等的度量

时间:2011-08-10 18:12:35

标签: mdx dimension measure members

我有以下测量和尺寸结构,以及一些示例数据

事实表:

id_dim1 id_dim2 id_dim ... measure1

1 2 ... 120

2 1 ... 101

1 1 ... 95

3 3 ... 12

DIM1:

id_dim1 member1value

1 Value1

2 Value2

3 Value3

DIM2:

id_dim2 member2value

1 Value1

2 Value2

3 Value3

Dim1和Dim2实际上是角色扮演维度,基于相同的维度表

我想计算一个仅在以下情况下对measure1求和的度量:

[Dim1].[Hierarchy1].[Level based on member2value]=[Dim2].[Hierarchy1].[Level based on member2value]

在上面的例子中,度量将计算为:95 + 12 = 107

问题在于我希望正确计算度量,即使在后面的mdx查询中没有使用Dim1和Dim2。

到目前为止,我有以下内容,只有在后面的查询中使用Dim1和Dim2时才有效:

Member [Measures].[CondMeasure] AS 'IIF(
[Dim1].[Hierarcy1].[All].[Level].CurrentMember.Name =
[Dim2].[Hierarchy1].[All].[Level].CurrentMember.Name
,
([Measures].[Measure1],
[DimXX].[Hxx].[LevelXX].[MemberXX],
[DimYY].[Hyy].[LevelYY].[MemberYY])
),
0
)
'

该度量也仅根据其他一些成员的具体情况计算,如上所示。

顺便说一下。我在SSAS中尝试这个

此致 索伦

1 个答案:

答案 0 :(得分:0)

您如何看待在DSV中创建事实表或表达式中的附加字段?

case 
when id_dim1 = id_dim2 then measure1
else 0
end

之后,您可以创建新的指标...

在某些情况下,它比编写困难的mdx表达式更容易。