重複するメンバー名および別名を指定する構文

アウトライン内に重複メンバー名が存在している場合でも、データベース内のメンバーは、それぞれの非共有のメンバー名によって一意に識別されます。重複するメンバー名は、修飾名のフォーマットによって区別されます。重複メンバー名を指定するには、修飾名を使用する必要があります。

修飾メンバーや別名は、次のいずれかのフォーマットで指定できます。

  • 完全修飾メンバー名

  • 祖先を区別することによって修飾されるメンバー名

  • ショートカットの修飾メンバー名

ノート:

修飾名は、すべて別名で構成するか、すべてメンバー名で構成する必要があります。修飾名でメンバー名と別名を混在させることはできません。

完全修飾メンバー名の使用方法

完全修飾メンバー名は、重複するメンバー名または別名、およびディメンション名までのすべての祖先から構成されます。それぞれの名前は大カッコ([])で囲まれ、ピリオド(.)で区切られる必要があります。構文は次のとおりです。

[DimensionMember].[Ancestors...].[DuplicateMember]

例:

[Market].[East].[State].[New York]
[Market].[East].[City].[New York]

祖先の区別によるメンバーの修飾

祖先を区別することによって修飾されるメンバー名では、メンバー名または別名と、重複するメンバーまたは別名を一意に識別する祖先までを含むすべての祖先が使用されます。パス内の最初の祖先は、常に一意のメンバー名になります。それぞれの名前は大カッコ([])で囲まれ、ピリオド(.)で区切られる必要があります。構文は次のとおりです。

[DifferentiatingAncestor].[Ancestors...].[DuplicateMember]

例:

[State].[New York]
[City].[New York]

ショートカットの修飾メンバー名の使用方法

Essbaseでは、重複メンバー・アウトライン内のメンバーのショートカットの修飾名が、内部で構築されます。スクリプト、スプレッドシートまたはMDX問合せに、ショートカットの修飾名を手動で挿入できます。

Essbaseでは、次に示す構文を使用して、ショートカットの修飾名を構築します。スクリプト、スプレッドシートおよびMDX問合せでメンバーを参照するときにEssbaseで使用される構文と同じ構文を使用することをお薦めしますが、必須ではありません。

表5-1 ショートカットの修飾名の構文

Scenario 修飾名の構文

世代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]

シナリオによっては、区別する祖先メソッドがショートカットとして使用されます。

[DifferentiatingAncestor].[Ancestors...].[DuplicateMember]

[2006].[Qtr1].[Jan]

一意のメンバー名アウトラインでの修飾メンバー名の使用方法

修飾メンバー名は、一意のメンバー名アウトライン(重複メンバー名が有効になっていないアウトライン)でのメンバー名の参照にも適用できます。修飾メンバー名を使用すると、共有メンバーと元のメンバーを区別できます。

たとえば、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;

この例の二重の閉じ大カッコは、エスケープ文字として必要です。MDX構文の詳細は、重複するメンバー名および別名を指定するMDX構文を参照してください。