現在の行に基づいてメジャーを計算したいと思います。 問題:WITH MEMBER部分で現在の行を取得する方法が見つかりません。WITH MEMBERの計算で現在の行の値を取得する方法MDX?
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'の代わりにしたいと思います。
これは、行が 'Chemicals'、 'Pharmacy'、 'Test'を返す値であるとします。[Measures]。[Test]計算を変更したいと思います。
MDXでできますか?もしそうなら、現在の値をどのように得ることができますか?
[Levier]。CurrentMember.Nameを試しましたが、[Exigences] .CurrentMember.Nameと競合していると思います。
いずれかのアイデアがありますか?
これは努力のビットを取ってきたが、それはいい金バッジを持っている利点だ、
理解することがわからない:これはあなたのプロバイダのための仕事に行くされていますが、このいずれかを試すことができます
わかりません現在の行ではどういう意味ですか?基礎となるテーブルの行?はいの場合はどちらですか? (rowidを取得するのはあまりOLAPではありません:-)) – ic3
ON ROWSを選択すると、私は[Levier]のメンバーのセットを返すDESCENDANTSをやっています。上のWITH MEMBERで、 'Chemicals'文字列がハードコードされていることがわかります。この文字列を私の[Levier] .CurrentMember.Name値にしたいと思います。しかし、[Exigences] .CurrentMember.Nameと[Levier] .CurrentMember.Nameの間の平等テストは、常に[true]になります。したがって、フィルタは何もフィルタリングしません。 – Spredzy
私はあなたの問題、トリッキーなものを参照してください。 icCube OLAPサーバーは、問題を解決する関数言語をサポートしています。申し訳ありませんが、私はあなたの問題を解決する方法をAxis()または重複した階層を使用して何かをしない限り表示されません。この標準MDX su..sの変数uffを作成する必要があります。 – ic3