計算されたメンバーが作成されます。
Syntax
CREATE [ SESSION ] [HIDDEN] [ CALCULATED ] MEMBER CURRENTCUBE | Cube_Name.Member_Name
AS MDX_Expression
[,Property_Name = Property_Value, ...n]
......[,SCOPE_ISOLATION = CUBE]
引数
Cube_Name
メンバーが作成されるキューブの名前を提供する有効な文字列式。
Member_Name
メンバー名を提供する有効な文字列式。 Measures次元以外の次元内でメンバーを作成するために、完全限定名を指定します。 完全な適格メンバー名を提供していない場合、そのメンバーは「測定」次元で作成されます。
MDX_Expression
有効な多次元表現(MDX)表現です。
Property_Name
計算されたメンバープロパティの名前を提供する有効な文字列。
Property_Value
計算されたメンバープロパティの値を定義する有効なスカラー式です。
Remarks
CREATE MEMBER文は、セッション中に利用可能な計算メンバーを定義しており、したがってセッション中に複数のクエリで使用可能です。 詳細については、「 計算メンバー Session-Scoped 作成(MDX)」をご覧ください。
また、単一のクエリで使える計算メンバーを定義することもできます。 単一のクエリに限定される計算メンバーを定義するには、SELECT文のWITH節を使用します。 詳細については、「 計算メンバー Query-Scoped 作成(MDX)」をご覧ください。
Property_Name は標準的または任意の計算メンバープロパティのいずれかを指すことがあります。 標準メンバー特性はこのトピックの後半で述べます。 CREATE MEMBERで作成された計算メンバー( SESSION 値なし)にはセッション範囲があります。 さらに、計算されたメンバー定義内の文字列は二重引用符で区切られています。 これは、文字列を単一引用符で区切るよう指定するOLE DBの方法とは異なります。
現在接続されているキューブ以外のキューブを指定するとエラーが発生します。 したがって、現在のキューブを表すにはキューブ名の代わりにCURRENTCUBEを使うべきです。
OLE DBで定義されているメンバープロパティの詳細については、OLE DBのドキュメントをご覧ください。
Scope
計算されたメンバーは、以下の表に記載された範囲のいずれかに存在します。
クエリ範囲
計算されたメンバーの可視性と寿命はクエリに限定されます。 計算されたメンバーは個別クエリで定義されます。 クエリのスコープはセッションのスコープを上書きします。 詳細については、「 計算メンバー Query-Scoped 作成(MDX)」をご覧ください。
セッション範囲
計算メンバーの可視性と寿命は、作成されたセッションに限定されます。 (計算されたメンバーに対してDROP MEMBER声明が発行された場合、ライフタイムはセッション期間より短くなります。)CREATE MEMBER文はセッションスコープを持つ計算メンバーを作成します。
スコープアイソレーション
キューブの多次元表現(MDX)スクリプトに計算されたメンバーが含まれている場合、デフォルトでは計算されたメンバーはセッションスコープ計算やクエリ定義計算の解決前に解決されます。
Note
特定のシナリオでは、 Aggregate(MDX) 関数や VisualTotals(MDX) 関数がこの挙動を示しません。
この動作により、一般的なクライアントアプリケーションは複雑な計算を含むキューブを扱い、計算の具体的な実装を考慮する必要がなくなります。 しかし、特定の状況では、キューブ内の特定の計算の前にセッションやクエリスコープの計算メンバーを実行したい場合があり、 Aggregate 関数も VisualTotals 関数も適用できません。 これを実現するには、SCOPE_ISOLATION計算の性質を用いてください。
Example
以下のスクリプトは、正しい結果を得るためにSCOPE_ISOLATION計算特性が必要なシナリオの一例です。
Cubeの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を持たない米国の売上高とWAなしの店舗コストの比率です。 前回のクエリでは望ましい結果は返されません。これは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 | 計算されたメンバーが他の計算メンバーを参照する場合(すなわち計算メンバー同士が交差する場合)に、計算されたメンバーが解かれる順序。 |
| FORMAT_STRING | クライアントアプリケーションがセル値を表示する際に使用できるOfficeスタイルのフォーマット文字列です。 |
| 可視化 | 計算されたメンバーがスキーマの行セットに見えるかどうかを示す値です。
AddCalculatedMembers関数を使って、計算された可視メンバーをセットに追加できます。 ゼロでない値は、計算されたメンバーが見えることを示します。 このプロパティのデフォルト値は 「可視」です。 この値をゼロに設定した場合、見えない計算メンバーは、より複雑な計算メンバーの中間ステップとして一般的に使われます。 これらの計算されたメンバーは、測度など他のタイプのメンバーでも呼ばれます。 |
| NON_EMPTY_BEHAVIOR | 空セルを解決する際に計算メンバーの挙動を決定するために用いられる測度または集合。 ** 警告 ** このプロパティは廃止されています。 設定は避けてください。 詳細はSQL Server 2014の廃止されたAnalysis Services機能を参照してください。 |
| キャプション | クライアントアプリケーションがメンバーのキャプションとして使用する文字列です。 |
| DISPLAY_FOLDER | クライアントアプリケーションがメンバーを表示するために使用する表示フォルダのパスを特定する文字列です。 フォルダレベルの区切りはクライアントアプリケーションによって定義されます。 Analysis Servicesが提供するツールやクライアントでは、バックスラッシュ(\)がレベルの区切りとなります。 定義されたメンバーに対して複数の表示フォルダを提供するには、セミコロン(;)でフォルダを区切ってください。 |
| ASSOCIATED_MEASURE_GROUP | この要素が関連付けられる測度群の名前。 |