MDX データ操作 - CREATE MEMBER
計算されるメンバーを作成します。
構文
CREATE [ SESSION ] [HIDDDEN] [ CALCULATED ] MEMBER CURRENTCUBE | Cube_Name.Member_Name
AS MDX_Expression
[,Property_Name = Property_Value, ...n]
......[,SCOPE_ISOLATION = CUBE]
引数
Cube_Name
メンバーが作成されるキューブの名前を提供する有効な文字列式。
Member_Name
メンバー名を提供する有効な文字列式。 メジャー ディメンション以外のディメンション内にメンバーを作成するには、完全修飾名を指定します。 完全修飾メンバー名を指定しない場合、メンバーはメジャー ディメンションに作成されます。
MDX_Expression
有効な多次元式 (MDX) 式です。
Property_Name
計算されるメンバー プロパティの名前を提供する有効な文字列。
Property_Value
計算されるメンバー プロパティの値を定義する有効なスカラー式。
解説
CREATE MEMBER ステートメントは、セッション全体で使用できる計算されるメンバーを定義するため、セッション中に複数のクエリで使用できます。 詳細については、「 Session-Scoped計算メンバーの作成 (MDX)」を参照してください。
1 つのクエリで使用する計算メンバーを定義することもできます。 1 つのクエリに限定される計算されるメンバーを定義するには、SELECT ステートメントで WITH 句を使用します。 詳細については、「 Query-Scoped計算メンバーの作成 (MDX)」を参照してください。
Property_Name は、標準または省略可能な計算されるメンバー プロパティを参照できます。 標準メンバー プロパティについては、このトピックの後半で説明します。 SESSION 値を指定せずに CREATE MEMBER を使用して作成された計算メンバーには、 セッション スコープがあります。 さらに、計算されるメンバー定義内の文字列は、二重引用符で区切られます。 これは、文字列を単一引用符で区切る必要があることを指定する OLE DB で定義されているメソッドとは異なります。
現在接続されているキューブ以外のキューブを指定すると、エラーが発生します。 そのため、キューブ名の代わりに CURRENTCUBE を使用して、現在のキューブを示す必要があります。
OLE DB によって定義されるメンバー プロパティの詳細については、OLE DB のドキュメントを参照してください。
Scope
計算されるメンバーは、次の表に示すスコープの 1 つ内で発生する可能性があります。
クエリ スコープ
計算されるメンバーの表示設定と有効期間は、クエリに限定されます。 そのような計算されるメンバーは、個々のクエリの中で定義します。 クエリ スコープはセッション スコープをオーバーライドします。 詳細については、「 Query-Scoped計算メンバーの作成 (MDX)」を参照してください。
セッション スコープ
計算されるメンバーの可視性と有効期間は、作成されるセッションに制限されます。 (DROP MEMBER ステートメントが計算されるメンバーに対して発行された場合、有効期間はセッション期間より短くなります)。CREATE MEMBER ステートメントは、セッション スコープを持つ計算されるメンバーを作成します。
スコープの分離
キューブ多次元式 (MDX) スクリプトに計算メンバーが含まれている場合、既定では、計算されるメンバーは、セッション スコープの計算が解決される前と、クエリ定義の計算が解決される前に解決されます。
Note
特定のシナリオでは、 集計 (MDX) 関数と VisualTotals (MDX) 関数は、この動作を示しません。
この動作によって、汎用的なクライアント アプリケーションでは計算の実装方法を気にせずに複雑な計算を含むキューブを処理できます。 ただし、特定のシナリオでは、キューブ内の特定の計算の前にセッションまたはクエリスコープの計算メンバーを実行し、 Aggregate 関数も VisualTotals 関数も適用できない場合があります。 これを実現するには、SCOPE_ISOLATION計算プロパティを使用します。
例
次のスクリプトは、正しい結果を生成するためにSCOPE_ISOLATION計算プロパティが必要なシナリオの例です。
キューブの MDX スクリプト :
CREATE MEMBER CURRENTCUBE.Measures.ProfitRatio AS 'Measures.[Store Sales]/Measures.[Store Cost]', SOLVE_ORDER = 10
MDX クエリ:
WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio
上のクエリでは、WA を除く USA の、出店コストに対する売上の比率を求めようとしています。 上のクエリでは目的の結果が返されず、USA の比率から WA の比率を引くという無意味な結果が返されます。 目的の結果を得るには、SCOPE_ISOLATION計算プロパティを使用できます。
SCOPE_ISOLATION 計算プロパティを使用した MDX クエリ :
WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
,SCOPE_ISOLATION=CUBE
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio
標準のプロパティ
計算されるメンバーには、それぞれ既定のプロパティのセットがあります。 クライアント アプリケーションが Analysis Services に接続されている場合、既定のプロパティは、管理者が選択したとおりにサポートされるか、サポート可能になります。
キューブ定義によっては、追加のメンバー プロパティを使用できる場合があります。 以下のプロパティは、キューブ内のディメンション レベルに関係する情報を表します。
プロパティの識別子 | 意味 |
---|---|
SOLVE_ORDER | 計算されるメンバーがもう 1 つの他の計算されるメンバーを参照する場合 (つまり、計算されるメンバーが互いに交差する場合) に、計算されるメンバーが解決される順序です。 |
FORMAT_STRING | クライアント アプリケーションがセル値を表示するときに使用できる Office スタイルの書式指定文字列。 |
表示 | 計算されるメンバーがスキーマ行セットに表示されるかどうかを示す 値。 表示可能な計算メンバーは、 AddCalculatedMembers 関数を使用してセットに追加できます。 0 以外の値は、計算されるメンバーが表示されることを示します。 このプロパティの既定値は Visible です。 表示されない計算メンバー (この値が 0 に設定されている場合) は、通常、より複雑な計算メンバーの中間ステップとして使用されます。 これらの計算されるメンバーは、メジャーなどの他の種類のメンバーでも参照できます。 |
NON_EMPTY_BEHAVIOR | 空のセルを解決するときに計算されるメンバーの動作を決定するために使用されるメジャーまたはセット。 **警告** このプロパティは非推奨です。 これを設定しないでください。 詳細については、「SQL Server 2014 の非推奨の Analysis Services 機能」を参照してください。 |
キャプション | メンバーのキャプションとしてクライアント アプリケーションが使用する文字列です。 |
DISPLAY_FOLDER | クライアント アプリケーションがメンバーの表示に使用する表示フォルダーのパスを識別する文字列。 フォルダー レベルの区切り記号は、クライアント アプリケーションによって定義されます。 Analysis Services によって提供されるツールとクライアントの場合、円記号 (\) はレベル区切り記号です。 定義されたメンバーで複数の表示フォルダーを指定するには、セミコロン (;) を使用してフォルダーを区切ります。 |
ASSOCIATED_MEASURE_GROUP | このメンバーが関連付けられているメジャー グループの名前です。 |
参照
DROP MEMBER ステートメント (MDX)
UPDATE MEMBER ステートメント (MDX)
MDX データ定義ステートメント (MDX)