currentmember 関数を使用してメンバーでフィルター処理するクエリが 3 つあります。フィルターを適用するメンバーを含む階層にフィルターを適用すると、IS 演算子を使用してメンバーを照合し、正しい結果を得ることができます。ただし、フィルタリングされたセットとメンバーが異なる階層にある場合は機能しません。それでも、オブジェクト比較の代わりにキャプション比較を行うだけで、2 番目のケースでフィルタリングされた結果を正しく取得できます。例では、AdventureWorks データベースを使用します。
このクエリは、IS 演算子で期待どおりに機能します。
select non empty [Measures].[Reseller Sales Amount] on 0,
Filter (NonEmpty({[Geography].[Country].[Country].ALLMEMBERS * [Geography].[City].[City].ALLMEMBERS}), [Geography].[City].Currentmember IS [Geography].[City].&[Seattle]&[WA]) on 1
【アドベンチャーワークス】より
これはキャプションの比較を使用します (予想どおり、異なる結果)
select non empty [Measures].[Reseller Sales Amount] on 0,
Filter (NonEmpty({[Geography].[Country].[Country].ALLMEMBERS}), [Geography].[City].Currentmember.MEMBER_CAPTION = 'Seattle') on 1
【アドベンチャーワークス】より
ただし、これは前のクエリと同じ結果を生成するはずですが、何も返しません。
select non empty [Measures].[Reseller Sales Amount] on 0,
Filter (NonEmpty({[Geography].[Country].[Country].ALLMEMBERS }), [Geography].[City].Currentmember IS [Geography].[City].&[Seattle]&[WA]) on 1
【アドベンチャーワークス】より
ありがとう。