重複するメンバー名および別名を指定するMDX構文
重複メンバー名が有効になっているデータベースには、次のメンバー指定ルールが適用されます。
ノート:
これらのルールは、MDXを使用して一意のメンバー名アウトライン(重複するメンバー名が有効になっていないアウトライン)で共有メンバー名を明示的に参照する必要がある場合にも適用されます。 このトピックの「共有メンバー名の例」を参照してください。
重複するメンバー名を指定するには、修飾名を使用する必要があります。 修飾メンバー名または別名は、次を使用して指定できます:
-
「完全修飾メンバー名」-重複するメンバーまたは別名と、ディメンション名までのすべての祖先で構成されます。 各名前は角brackets([])で囲み、ピリオドで区切る必要があります。
[DimensionMember].[Ancestors...].[DuplicateMember]
例:
[Product].[100].[100-10]
-
「修飾メンバー名へのショートカット」-Essbaseでは、重複メンバー・アウトラインのメンバーのショートカット修飾名が内部的に構成されます。
ショートカット修飾名は、スクリプト、Smart Viewまたは他のグリッド・クライアント、MDX問合せに手動で挿入できます。
Essbaseでは、次の構文を使用してショートカット修飾名を構成します。 スクリプト、グリッド・クライアントおよびMDX問合せでメンバーを参照する場合、Essbaseが使用するのと同じ構文を使用するのが最適ですが、必須ではありません。
表4-3 ショートカット修飾メンバー名の構成
シナリオ 修飾名の構文 例 世代2に重複メンバー名が存在する [DimensionMember].[DuplicateMember]
[Year].[Jan]または[Product].[Jan]
アウトラインに重複するメンバー名が存在しますが、ディメンション内で一意です [DimensionMember]@[DuplicateMember]
[Year]@[Jan]
重複メンバー名は一意の親を持つ [ParentMember].[DuplicateMember]
[East].[New York]
世代3に重複メンバー名が存在する [DimensionMember].[ParentMember].[DuplicateMember]
[Products].[Personal Electronics].[Televisions]
重複メンバー名が名前付き世代またはレベルに存在し、メンバーはその世代またはレベルでは一意である [DimensionMember]@[GenLevelName]|[DuplicateMember]
[2006]@[Gen1]|[Jan]
MDXでは、次のいずれかの構文メソッドを使用して、ショートカット修飾メンバー名を参照する必要があります:
-
「Escape Characterメソッド」-MDX構文では大カッコも使用します:
-
ショートカット修飾名内の名前部分で使用される内部の閉じ角カッコ(])には、追加の]エスケープ文字が必要です。
-
ショートカット修飾メンバー名全体を大カッコ([])で囲む必要があります。
例:
[Year].[Jan]
はMDXでは[[Year]].[Jan]]]
として参照されます。[Year]@[Jan]
はMDXでは[[Year]]@[Jan]]]
として参照されます。[2006]@[Gen1]|[Jan]
はMDXでは[[2006]]@[Gen1]]|[Jan]]]
として参照されます。ノート:
前述の構文は、完全修飾メンバー名にも使用できますが、必須ではありません。
-
-
「StrToMbr関数メソッド」-StrToMbr関数を使用して、修飾名文字列をメンバー値式に変換できます。
例:
[Year].[Jan]
はMDXではStrToMbr("[Year].[Jan]")
として参照されます。[Year]@[Jan]
はMDXではStrToMbr("[Year]@[Jan]")
として参照されます。[2006]@[Gen1]|[Jan]
はMDXではStrToMbr("[2006]@[Gen1]|[Jan]")
として参照されます。ノート:
前述の構文は、完全修飾メンバー名にも使用できますが、必須ではありません。
-
重複メンバー名の問合せの例
次の問合せでは、MDXでショートカット・メンバー名を参照する両方のメソッドを使用します:
SELECT
{ Sales, Profit }
ON COLUMNS,
{[[Store]]@[6]]], StrToMbr("Product.SKU.1")}
ON ROWS
FROM MySample.Basic
WHERE ([[1998]].[Q1]].[1]]])
ノート:
StrToMbrは、任意のタイプのメンバー識別子文字列を受け入れます: 名前、別名または修飾名。
共有メンバー名の例
次の例は、共有メンバーを含む一意のメンバー名のアウトラインに適用されます。
Sample Basicデータベースでは、メンバー[100-20]は親[100]の下の参照メンバーであり、親[Diet]の下の共有メンバーが関連付けられています。 共有メンバー[100-20]は、次の問合せに示すように、一意の名前[Diet].[100-20]を使用して明示的に参照できます:
SELECT
{Sales}
ON COLUMNS,
{[[Diet]].[100-20]]]} PROPERTIES MEMBER_UNIQUE_NAME
ON ROWS
FROM Sample.Basic;