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 は実際にはロールプレイング ディメンションであり、同じディメンション テーブルに基づいています。

次の場合にのみ、メジャー 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でこれを試しています

よろしくソーレン

4

1 に答える 1

0

ファクト テーブルまたは DSV の式に追加フィールドを作成することについてどう思いますか?

case 
when id_dim1 = id_dim2 then measure1
else 0
end

その後、新しいメトリックを作成できます...

場合によっては、難しい mdx 式を記述するよりも簡単です。

于 2011-08-17T20:47:34.527 に答える