上位レベルのメンバーのすべての子孫を取得するMDX呼び出しから特定のメンバーを除外する方法

StackOverflow https://stackoverflow.com/questions/148875

  •  02-07-2019
  •  | 
  •  

質問

OLAPデータベースでは、Company->のレベルで構成される「Location」階層があります。地域->エリア->サイト->ルーム。次のMDXを使用して、会社レベルで特定のメンバーのすべての子孫を取得しています。

DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)

「冗長」という名前の特定の地域をレポートから除外する必要があります。上記のMDXを変更して、この特定の地域(およびそのすべての子孫)を除外するにはどうすればよいですか?この地域は「冗長」と呼ばれます。ただし、他の地域名は変更される可能性があるため、ハードコードしたくないです。

役に立ちましたか?

解決

EXCEPT関数はセットを取り、必要のないメンバーを削除します。あなたの場合、あなたは言う必要があります:

EXCEPT(
{DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)},
{DESCENDANTS([Location].[Whatever].[Redundant],[Location].[Site], SELF_AND_BEFORE)}
)

これにより、最初のセットで言及したものを除く、最初のセットのすべてが提供されます。このように理解するのは簡単です:

EXCEPT({the set i want}, {a set of members i dont want})

3番目の(オプションの)引数について心配する必要はありません: http:/ /msdn.microsoft.com/en-us/library/ms144900.aspx

他のヒント

階層のメンバーを返すときは、単に"-"を使用します。不要なメンバーを除外します。 これは、不明なメンバーを除外する方法です:

select
{[Module].[Hierarchy].[Module].Members - [Module].[Hierarchy].[Module].[Unknown]} on rows,
{[Date].[Month-day].[Day Of Month].Members - [Date].[Month-day].[Day Of Month].[Unknown]} on     columns
from [StatsView]
where {[Measures].[Maintainability Index]}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top