Descendants

EssbaseのMDX Descendants関数は、指定されたレベルまたは距離にあるメンバーの子孫のセットを返し、オプションで他のレベルの子孫を含めるか除外します。

この関数は、メンバーを階層化された順序で返します。たとえば、親メンバーの後に子メンバーが続きます。

構文

Descendants ( member , [{ layer | index }[, Desc_flags ]])

パラメータ

member

子孫の検索対象のメンバー。

layer

オプション。返される子孫の深さを示すレイヤー仕様。

index

オプション。memberから下に下る階層のステップ数。ここで返す子孫を特定します。

Desc_flags

オプション。返すメンバーをさらに示すキーワード。これらのキーワードは、layerまたはindexが指定されている場合にのみ使用できます。

Desc_flagsの値を参照してください。

ノート

Desc_flagsの値

すべてのフラグについて、SELFはlayerを参照します。したがって、BEFOREは"そのレイヤーの前"を示し、AFTERは"そのレイヤーの後"を示します。

  • SELFlayer内のメンバーのみを含めます。これにmemberが含まれるのは、memberがレイヤー内にある場合のみです。


    レイヤーが選択された階層図。
  • AFTERlayerの下メンバーを含めますが、layerのメンバーは含めません。


    レイヤーの下のレベルが選択された階層図。
  • BEFORE—階層内でlayerよりも上のmemberとその子孫を含めます。layerとそれ以下のすべては除外します。


    レイヤーまでのメンバーとその子孫を選択し、レイヤーは含まれない階層図。
  • BEFORE_AND_AFTERmemberとそのすべての子孫をレベル0まで含め、layer内のメンバーを除外します。


    レイヤーを除くメンバーとそのすべての子孫を選択した階層図。
  • SELF_AND_AFTERlayer内のメンバーと、layerの下のすべての子孫を含めます。


    レイヤーとレイヤーの下のレベルが選択された階層図。
  • SELF_AND_BEFOREmemberとそのすべての子孫をlayer (このレイヤーも含む)まで含めます。


    メンバーと、レイヤーを含むレイヤーの上のレベルが選択された階層図。
  • SELF_BEFORE_AFTERmemberとそのすべての子孫を含めます。


    メンバー、レイヤー、およびその他すべてのレベルが選択された階層図。
  • LEAVES (図なし): memberのすべての子孫を定義されたlayer内で含め、memberlayerの間のレベル0子孫を含めます。

次の問合せ:

SELECT
 Descendants ( [Year] )
ON COLUMNS
FROM sample.basic

返すグリッド:

表4-55 MDX例からの出力グリッド

Year Qtr1 Jan Feb Mar Qtr2 Apr May Jun Qtr3 Jul Aug Sep Qtr4 Oct Nov Dec
12656 2747 924 888 935 3352 1011 1071 1270 3740 1334 1304 1102 2817 907 884 1026

次の式は、次のセットを返します。

Descendants ( [Year], 2 )

{([Jan]:[Dec])}を返します。これは、Yearの2ステップ下で見つかるメンバー範囲です。

Descendants ( [Year], 2, BEFORE )

{[Year], [Qtr1], [Qtr2], [Qtr3], [Qtr4]}を返します。これは、Yearと、Yearの2ステップ下のレイヤーの前に発生するその子孫のセットです。

Descendants ( [Market], [West].level )

{[East], [West], [South], [Central]}を返します。これは、Westレベルで見つかるMarketの子孫のセットです。

Descendants([Market])

これは、Descendants([Market], [Market].level, SELF_BEFORE_AFTER)と同等です。Marketのすべての子孫を返します。

{[Market],
 [East], [New York], [Massachusetts], [Florida], [Connecticut], [New Hampshire],
 [West], [California], [Oregon], [Washington], [Utah], [Nevada],
 [South], [Texas], [Oklahoma], [Louisiana], [New Mexico],
 [Central], [Illinois], [Ohio], [Wisconsin], [Missouri], [Iowa], [Colorado] }
Descendants([Market], [Region])

これは、Descendants([Market], [Region]), SELF)と同等であり、[Region]は別名です。[Region]レベルのすべてのメンバーを返します。

{[East], [West], [South], [Central]}
Descendants([Market], [State], SELF)

[State]レベルの[Market]のすべての子孫を返します。

{[New York], [Massachusetts], [Florida], [Connecticut], [New Hampshire],
 [California], [Oregon], [Washington], [Utah], [Nevada], [Texas],
 [Oklahoma], [Louisiana], [New Mexico], [Illinois], [Ohio], [Wisconsin],
 [Missouri], [Iowa], [Colorado]}
Descendants([Market], [State], BEFORE)

すべてのリージョンと[Market]を返します。

{[Market], [East], [West], [South], [Central]}
Descendants([Market], [State], AFTER)

[Market]ディメンションに[State]レベルより下のレベルがないため、空のセットを返します。

{}
Descendants([Market], [Region], AFTER)

[Market]ディメンション内のすべての州を返します。

{[New York], [Massachusetts], [Florida], [Connecticut], [New Hampshire],
 [California], [Oregon], [Washington], [Utah], [Nevada], [Texas],
 [Oklahoma], [Louisiana], [New Mexico], [Illinois], [Ohio], [Wisconsin],
 [Missouri], [Iowa], [Colorado]}
Descendants([Market], [State], LEAVES)

[Market]レベルと[State]レベルの間のすべてのレベル0メンバーを返します。これには、両方のレベルが含まれます。

{[New York], [Massachusetts], [Florida], [Connecticut], [New Hampshire],
 [California], [Oregon], [Washington], [Utah], [Nevada], [Texas],
 [Oklahoma], [Louisiana], [New Mexico], [Illinois], [Ohio], [Wisconsin],
 [Missouri], [Iowa], [Colorado]}
Descendants([Market], 1)

2番目の引数は、[Market]レベル([Region]レベル)から1の距離を指定します。そのため、この式はDescendants([Market], [Region])と同等です。これは、以下を返します。

{[East], [West], [South], [Central]}
Descendants([Market], 2, SELF_BEFORE_AFTER)

Descendants([Market], [State], SELF_BEFORE_AFTER)と同等です。これは、以下を返します。

{[Market], 
 [East], [New York], [Massachusetts], [Florida], [Connecticut], [New Hampshire]
 [West], [California], [Oregon], [Washington], [Utah], [Nevada],
 [South], [Texas], [Oklahoma], [Louisiana], [New Mexico],
 [Central], [Illinois], [Ohio], [Wisconsin], [Missouri], [Iowa], [Colorado] }
Descendants([Market], -1, SELF_BEFORE_AFTER)

負の距離引数が無効であるため、アプリケーション・ログに警告を出力します。この式は空のセットを返します。

{}
Descendants([Market], 10, SELF)

[Market]レベルから10の距離に[Market]の子孫がないため、空のセットを返します。

Descendants([Market], 10, BEFORE)

[Market]のすべての子孫を返します。

{[Market],
 [East], [New York], [Massachusetts], [Florida], [Connecticut], [New Hampshire]
 [West], [California], [Oregon], [Washington], [Utah], [Nevada],
 [South], [Texas], [Oklahoma], [Louisiana], [New Mexico],
 [Central], [Illinois], [Ohio], [Wisconsin], [Missouri], [Iowa], [Colorado] }
Descendants([Market], 10, LEAVES)

[Market]のすべてのレベル0の子孫を返します。

{[New York], [Massachusetts], [Florida], [Connecticut], [New Hampshire],
 [California], [Oregon], [Washington], [Utah], [Nevada], [Texas],
 [Oklahoma], [Louisiana], [New Mexico], [Illinois], [Ohio], [Wisconsin],
 [Missouri], [Iowa], [Colorado]}