0

現在の行に基づいてメジャーを計算したいと思います。問題は、WITHMEMBER部分で現在の行を取得する方法が見つからないことです。

WITH MEMBER [Measures].[Test] AS AVG(
    NonEmptyCrossJoin(
                FILTER(DESCENDANTS([Exigences].[ENVGR], [Levier], SELF),
                       [Exigences].CurrentMember.Name = 'Chemicals'),
                DESCENDANTS([Organization].[Valeo].[Powertrain Systems], [entity], SELF)),
    [Measures].[ProgressLevel])

SELECT {[Measures].[ProgressLevel], [Measures].[Test]} ON COLUMNS,
DESCENDANTS([Exigences].[ENVGR].[ENVGR-01.001], [Levier], SELF) ON
ROWS FROM [Exigences]

化学物質は現在ハードコーディングされています。それは例です。'Chemicals'の代わりに現在の行の値を設定したいと思います。

したがって、これらが行が「化学物質」、「薬局」、「テスト」を返す値であるとしましょう。[メジャー]。[テスト]の計算を変更したいと思います。

MDXはそれを行うことができますか?もしそうなら、どうすれば現在の値を取得できますか。

[Levier] .CurrentMember.Nameを試しましたが、[Exigences].CurrentMember.Nameと競合していると思います。

誰かアイデアがありますか?

ありがとうございました、

4

1 に答える 1

2

これには少し手間がかかりますが、それは素敵なゴールド バッジを持つ利点です。MDX Generate関数と名前付きセットを使用しています (リンクの myCellSet & 2d の例):

これがプロバイダーで機能するかどうかはわかりませんが、これを試すことができます:

WITH MEMBER [Measures].[Test] AS AVG(
 NonEmptyCrossJoin(
            Generate( {[Exigences].CurrentMember} as MyCellSet,
              FILTER(DESCENDANTS([Exigences].[ENVGR], [Levier], SELF),
                   [Exigences].CurrentMember.Name = MyCellSet.CurrentMember.Name)
            )
            ,
            DESCENDANTS([Organization].[Valeo].[Powertrain Systems], [entity], SELF)),
 [Measures].[ProgressLevel])
于 2011-08-12T09:37:48.120 に答える