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は"そのレイヤーの後"を示します。
-
SELF
—layer内のメンバーのみを含めます。これにmemberが含まれるのは、memberがレイヤー内にある場合のみです。 -
AFTER
—layerの下メンバーを含めますが、layerのメンバーは含めません。 -
BEFORE
—階層内でlayerよりも上のmemberとその子孫を含めます。layerとそれ以下のすべては除外します。 -
BEFORE_AND_AFTER
—memberとそのすべての子孫をレベル0まで含め、layer内のメンバーを除外します。 -
SELF_AND_AFTER
—layer内のメンバーと、layerの下のすべての子孫を含めます。 -
SELF_AND_BEFORE
—memberとそのすべての子孫をlayer (このレイヤーも含む)まで含めます。 -
SELF_BEFORE_AFTER
—memberとそのすべての子孫を含めます。 -
LEAVES
(図なし): memberのすべての子孫を定義されたlayer内で含め、memberとlayerの間のレベル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]}