2011-08-03 17 views
2

という名前のディメンションを持つ、YEARQUARTERおよびMONTHという3つのレベルのディメンションがあります。第3レベル(モンドリアンMDX)にフィルタを適用した後の第1レベルのデータメンバを取得する方法

意味
With SET [*BASE_MEMBERS_Period.Period] AS ' Filter ([Period.Period].[Month].Members , (NOT([Period.Period].CurrentMember In { [Period].[All Periods].[FY 2008-2009].[Q4 2008-09].[Mar 2009 ] }))) ' 

、我々は[Mar 2009 ]以外のすべてのデータが欲しい:次のように

私は第3レベルのデータを除外しています。

は今、私は、次の要件のためのクエリを記述する必要があります。

  1. 上記のフィルタを適用することで... YEARレベルのすべてのメンバーのためのデータを取得します。 つまり、メンバー[FY 2008-2009]の値は、値[Mar 2009]を除いた後になるはずです。

  2. 上記のフィルタを適用すると、QUARTERレベルのすべてのメンバーのデータを取得できます。 つまり、メンバー[Q4 2008-09]の値は、[Mar 2009]の値を除いた後になるはずです。

ありがとうございます。

+0

ラムは答えになりますか? – ic3

答えて

0

ないモンドリアンわからが、それはMDX対応だ場合:

まず、あなたがあなたのセットを書くことができます - 演算子:あなたが探している行動を持つために

With SET [*BASE_MEMBERS_Period.Period] AS '[Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ]' 

使用できる:subselect

Select 
[Period.Period].[Year] on 0 
From 
    (Select 
    [Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ] on 0 
    from [MyCube]) 

結果からわかるように、2009年3月のデータは削除されています。副選択はファクト・データ(VISUALフラグを参照)だけでなく、mdx関数にも適用されます。月がフィルタリングされている次の文は、メンバ関数からも確認できます。

Select 
[Period.Period].[Month].members on 0 // -> March 2009 is not there 
From 
    (Select 
    [Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ] on 0 
    from [MyCube]) 
関連する問題