上位レベルのメンバーのすべての子孫を取得するMDX呼び出しから特定のメンバーを除外する方法
-
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]}
所属していません StackOverflow