14

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

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

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

4

2 に答える 2

24

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

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

これにより、2 番目のセットで言及したものを除いて、最初のセットのすべてが得られます。次のようにすると理解しやすいです。

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

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

于 2008-09-29T14:26:12.807 に答える