2

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

事实表:

id_dim1 id_dim2 id_dim ...测量1

1 2 ...120

2 1 ...101

1 1 ...95

3 3 ...12

暗淡1:

id_dim1 member1value

1 价值1

2 价值2

3 价值3

暗淡2:

id_dim2 member2value

1 价值1

2 价值2

3 价值3

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

问候索伦

4

1 回答 1

0

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

case 
when id_dim1 = id_dim2 then measure1
else 0
end

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

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

于 2011-08-17T20:47:34.527 回答