2

MDX について理解を深め始めたところですが、計算メンバーに問題があります。次の MDX を使用しています。

IIF( ISAMPTY((Axis(1).Item(0).Item(0).Di​​mension.CurrentMember, [メジャー].[数量])) ,NULL ,([製品].[製品コード].CurrentMember.Parent, [メジャー].[数量])

)

私がやろうとしているのは、立方体に表示される製品グループの合計数量を取得することです。次に、その合計を各製品の数量で割り、「合計の割合」の尺度を取得します。上記の MDX は、任意のディメンションに表示される製品の合計数量を正しく返します。ただし、Excel のユーザーが製品を表示するフィルターを変更すると、上記の MDX はグループ全体の合計数量を表示し、ユーザーがチェックした製品を無視します。MDX の基本的な理解が不足していると思いますが、ユーザーが Excel で選択した製品コードを考慮して計算されたメジャーを取得するにはどうすればよいですか?

4

1 に答える 1

0

Visual Studio SQL Server Data Tools (そのツールを使用している場合) を使用すると、キューブを参照して [計算] タブを選択し、[計算ツール] > [テンプレート] の下に "合計の割合" というテンプレートがあります。このツールが提供する MDX は柔軟であるため、ピボットにプルした階層の属性でパーセンテージが調整されます。

Case
// Test to avoid division by zero.
When IsEmpty
 ( 
    [Measures].[<<Target Measure>>] 
 ) 
Then Null

Else ( [<<Target Dimension>>].[<<Target Hierarchy>>].CurrentMember,
   [Measures].[<<Target Measure>>] ) 
 /
 ( 
   // The Root function returns the (All) value for the target dimension.
   Root     
   ( 
      [<<Target Dimension>>] 
    ), 
    [Measures].[<<Target Measure>>] 
 )
End

あなたが言及したことを達成するために開発するときに、このオプションが機能することがわかりました。

于 2015-06-08T16:01:26.933 に答える