キューブ式とサブキューブ式の使用

多次元式 (MDX) ステートメントでは、キューブまたはサブキューブのデータを定義、操作、または取得するために、キューブ式やサブキューブ式を使用します。

キューブ式

キューブ式には、キューブ識別子または CURRENTCUBE キーワードが含まれているため、単純式のみを指定できます。多くの MDX ステートメントでは、キューブ識別子を使用する代わりに、現在のキューブ コンテキストを識別するために CURRENTCUBE キーワードを使用します。

MDX ステートメントを BNF 表記で記述する場合、キューブ識別子は Cube_Name の形式で表されます。

キューブ式は複数の場所で使用できます。MDX の SELECT ステートメントでは、キューブ式は、データの取得元のキューブを指定します。次のクエリの例では、式 [Adventure Works] はその名前のキューブを参照しています。

SELECT [Measures].[Internet Sales Amount] ON COLUMNS

FROM [Adventure Works]

CREATE MEMBER ステートメントでは、キューブ式は、作成中の計算されるメンバが表示されるキューブを指定します。次の例のステートメントでは、Adventure Works キューブの Measures ディメンションに、計算されるメジャーを作成します。

CREATE MEMBER [Adventure Works].[Measures].[Test] AS 1

MDX スクリプト内で CREATE MEMBER ステートメントを使用する場合は、キューブの名前を CURRENTCUBE キーワードに置き換えることができます。これは、計算されるメンバが作成されるキューブが、MDX スクリプトが属するキューブと常に同じになるためです。次に例を示します。

CREATE MEMBER CURRENTCUBE.[Measures].[Test] AS 1;

これにより、キューブの名前がハードコーディングされなくなるため、計算されるメンバの定義をキューブ間で簡単にコピーして貼り付けることができるようになります。

サブキューブ式

サブキューブ式には、サブキューブ識別子、またはサブキューブを返す MDX ステートメントを含めることができます。サブキューブ式にサブキューブ識別子が含まれている場合、これは単純式になります。サブキューブを返す MDX ステートメントが含まれている場合は、複合ステートメントになります。たとえば、次の例に示すように、MDX の SELECT ステートメントは、サブキューブを返すので、サブキューブ式が許可されている場所で使用できます。

SELECT [Measures].MEMBERS ON COLUMNS,

[Date].[Calendar Year].MEMBERS ON ROWS

FROM

(SELECT [Measures].[Internet Sales Amount] ON COLUMNS,

[Date].[Calendar Year].&[2004] ON ROWS

FROM [Adventure Works])

このように FROM 句内で使用する SELECT ステートメントは、サブセレクトとも呼ばれます。

サブキューブ式が使用される別の一般的なシナリオとして、MDX スクリプトで、スコープを指定した割り当てを実行する場合があります。次の例では、SCOPE ステートメントを使用して、[Measures].[Internet Sales Amount] で構成されるサブキューブに割り当てを制限します。

SCOPE([Measures].[Internet Sales Amount]);

This=1;

END SCOPE;

MDX ステートメントを BNF 表記で記述する場合、サブキューブ識別子は Subcube_Name の形式で表されます。