MDXサブ選択
MDXでは、サブ選択とは、FROM句のプライマリSELECT文内でネストされたセカンダリSELECT文です。その目的は、スキャンされたEssbaseデータの量を減らす、または除外することです。サブ選択を使用すると、部分的な集約が必要なEssbase問合せを効果的に処理できます。
構文
サブ選択を使用するための構文は、MDX問合せ形式のコンテキストで示されています。
[<with_section>]
SELECT <axis_specification>
[, <axis_specification>...]
<subselect>
[WHERE [<slicer_specification>]]
ここでの<subselect>
の説明:
FROM
(SELECT <axis_specification>
[, <axis_specification>...]
FROM <cube_specification>)
ノート
次のガイドラインは、サブ選択で使用できるメンバーに適用されます。
-
どの世代またはレベルからでもかまいません。結果から除外される可能性があるため、子孫の連結演算子が分析されます。子孫の演算子が
~
(非連結)であり、その子孫に共有メンバーまたは共有メンバーのプロトタイプ・メンバーがない場合、そのサブ階層は結果から削除されます。同様に、ブロック・ストレージ階層に格納されているレベル0以外のメンバーが、その集約の唯一のコントリビュータである場合、その子は依存関係として扱われません。 -
WITHセクションで定義された計算メンバーにできます。
-
式にできます。式のコントリビュータは分析されますが、その子孫は分析されません。
-
値を返す関数は評価されません(数値を返すMDX関数を参照)。また、データを使用して結果を導出する関数もありません(セットを返すMDX関数のデータベース・セット関数を参照)。そのような式からのすべての依存関係が含まれます。
-
メンバーが同じディメンションからのものである場合、それらも同じレベルおよび階層にある必要があります(集約ストレージ・データベースにのみ適用されます)。
-
NON EMPTY
構文は、サブ選択軸の指定には関係ありません。
例
SELECT
[Digital Cameras/Camcorders].Children ON COLUMNS
FROM
(SELECT
{[Digital Cameras],[Camcorders]} ON COLUMNS
FROM ASOsamp.Basic)
WHERE ([Curr Year],[94706],[Coupon],[Cash],[1 to 13 Years],[Under 20,000],[Sale],[Units],[Mar])