次の方法で共有


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)