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])