メンバ式 (MDX)
詳細
InterSystems MDX では、メンバ式の形式は以下のいずれかです。
-
単一メンバへの名前による明示的な参照であるメンバ・リテラル。
[dimension_name].[hierarchy_name].[level_name].[member_name]
以下は、この指定の説明です。
-
[dimension_name] は、ディメンジョンの名前を付ける MDX 識別子 です。
-
[hierarchy_name] は、そのディメンジョン内の階層の名前を付ける MDX 識別子 です。階層名は省略できます。省略すると、クエリでは、このディメンジョン内の定義に従って、指定された名前の最初のレベルが使用されます。
計算メンバは階層内にないため、計算メンバを参照する場合は階層名を省略できます。
-
[level_name] は、その階層内のレベルの名前を付ける MDX 識別子 です。レベル名は省略できます。省略すると、クエリでは、このディメンジョン内の定義に従って、指定された名前の最初のメンバが使用されます。
また、計算メンバはレベル内にないため、計算メンバを参照する場合はレベル名を省略できます。
-
[member_name] は、そのレベルのメンバの名前を示す MDX 識別子 です。
例えば、以下のように作成できます。
[gend].[h1].[gender].[female]
メジャーの場合は、任意のメンバが、Measures と呼ばれるディメンジョンのメンバになるため、メンバ・リテラルのバリアント形式は以下のようになります。このディメンジョンには、階層やレベルはありません。
[MEASURES].[measure_name]
例えば、以下のように作成できます。
[MEASURES].[%COUNT]
メジャーはメンバですが、上記のような式はスカラ値を返すため、他のメンバ式とまったく同じように使用できるわけではないことに注意してください。
-
-
以下のような、階層への明示的な参照。
[dimension_name].[hierarchy_name]
この式は、階層が属するディメンジョンの All メンバを返します。
以下はその例です。
aged.h1
上記の式は、AgeD ディメンジョンの All メンバを返します。サンプルの Patients キューブでは、このメンバの名前は All Patients になっています。
-
単一メンバを返す MDX 関数を使用する式。以下はその例です。
[gend].[h1].[gender].female.NEXTMEMBER
LAG、NEXTMEMBER、PARENT など、MDX 関数の多くがメンバを返します。
%TERMLIST はメンバを返せることに注意してください。
-
メンバの内部キーを使用して、以下の構文でそのメンバを返す式。
[dimension_name].[hierarchy_name].[level_name].&[member_key]
ここで、member_key は、メンバの KEY プロパティの値です。例を以下に示します。
birthqd.h1.quarter.&[2]
member_key は、式ではなく大文字と小文字を区別するリテラル値です。つまり、これを文字列値の式に置き換えることはできません。
KEY 値の作成方法の詳細は、リファレンスの "内部プロパティ" を参照してください。また、PROPERTIES 関数を使用して、KEY プロパティなど、メンバのプロパティの値を検索できます。
-
InterSystems MDX 拡張機能を使用して、以下の構文で別のキューブ内のメンバを参照する式。
[relationship_name].member_expression
[relationship_name] は、クエリで使用されるキューブ内のリレーションシップの名前を付ける MDX 識別子、member_expression は、そのキューブに適したメンバ式です。
-
メンバ式を含むピボット変数への参照。ピボット変数を参照するには、以下の構文を使用します。
$VARIABLE.variablename
variablename は論理変数名です。この式は角括弧で囲まないでください。この構文では大文字と小文字は区別されません。ピボット変数名も同様です。
ピボット変数の定義に関する詳細は、"ピボット変数の定義と使用" を参照してください。
例えば、以下のメンバ式はすべて同等です。
[gend].[h1].[gender].Female
[gend].female
gend.H1.gender.female
gend.h1.FEMALE
gend.female
計算メンバ
メンバは、レベルの定義の一部として、キューブ定義内で定義できます。計算メンバを作成することもできます。これは通常、他のメンバに基づきます。計算メンバは、以下の 2 つの方法で定義できます。
-
クエリの WITH 節の中。このメンバは、クエリの残りの部分で使用可能ですが、他のクエリでは使用できません。
-
CREATE MEMBER 文の中。このメンバは、セッションの残りの部分 (MDX シェルのセッションの残りの部分など) で使用可能です。
用途
メンバ式は、以下の方法で使用できます。