MDX用于计算来自2个不同维度的2个成员属性相等的度量值

MDX用于计算来自2个不同维度的2个成员属性相等的度量值,mdx,dimension,measure,members,Mdx,Dimension,Measure,Members,我有以下度量和维度的结构,以及一些示例数据 事实表: id_dim1 id_dim2 id_dim…测量值1 12…120 21…101 11…95 3…12 Dim1: id_dim1成员1值 1价值1 2价值2 3价值3 Dim2: id_dim2成员2值 1价值1 2价值2 3价值3 Dim1和Dim2实际上是角色扮演维度,并且基于相同的维度表 我想计算一个度量值,该度量值仅在以下情况下与度量值1求和: [Dim1].[Hierarchy1].[Level based on member2

我有以下度量和维度的结构,以及一些示例数据

事实表:

id_dim1 id_dim2 id_dim…测量值1

12…120

21…101

11…95

3…12

Dim1:

id_dim1成员1值

1价值1

2价值2

3价值3

Dim2:

id_dim2成员2值

1价值1

2价值2

3价值3

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

我想计算一个度量值,该度量值仅在以下情况下与度量值1求和:

[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尝试这个

问候
Soeren

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

case 
when id_dim1 = id_dim2 then measure1
else 0
end
之后,您可以创建新的度量

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