Syntax for Specifying Duplicate Member Names and Aliases

Although duplicate member names appear in the outline, each nonshared member name uniquely identifies a member in the database. A qualified name format differentiates the duplicate member names. A qualified name must be used to specify a duplicate member name.

A qualified member or alias name can be specified in any of the following formats:

  • Fully qualified member name

  • Member name qualified by differentiating ancestor

  • Shortcut qualified member name

Note:

A qualified name must comprise all alias names or all member names. You cannot mix member names and alias names in a qualified name.

Using Fully Qualified Member Names

A fully qualified member name comprises the duplicate member or alias name and all ancestors up to and including the dimension name. Each name must be enclosed in brackets ([ ]) and separated by a period (.). The syntax is as follows:

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

For example:

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

Qualifying Members by Differentiating Ancestor

A member name qualified by differentiating ancestor uses the member or alias name and all ancestors up to and including the ancestor that uniquely identifies the duplicate member or alias. The top ancestor in the path will always be a unique member name. Each name must be enclosed in brackets ([ ]) and separated by a period (.). The syntax is as follows:

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

For example:

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

Using Shortcut Qualified Member Names

Essbase internally constructs shortcut qualified names for members in duplicate member outlines. You can manually insert shortcut qualified names into scripts, spreadsheets, or MDX queries.

Essbase uses the syntax shown below to construct shortcut qualified names. Using the same syntax that Essbase uses when you reference members in scripts, spreadsheets, and MDX queries is optimal but not required.

Table 5-1 Shortcut Qualified Name Syntax

Scenario Qualified Name Syntax Example

Duplicate member names exist at generation 2

[DimensionMember].[DuplicateMember]

[Year].[Jan]

[Product].[Jan]

Duplicate member names exist in an outline but are unique within a dimension

[DimensionMember]@[DuplicateMember]

[Year]@[Jan]

Duplicate member names have a unique parent

[ParentMember].[DuplicateMember]

[East].[New York]

Duplicate member names exist at generation 3

[DimensionMember].[ParentMember].[DuplicateMember]

[Products].[Personal Electronics].[Televisions]

Duplicate member names exist at a named generation or level, and the member is unique at its generation or level

[DimensionMember]@[GenLevelName]|[DuplicateMember]

[2006]@[Gen1]|[Jan]

In some scenarios, the differentiating ancestor method is used as a shortcut.

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

[2006].[Qtr1].[Jan]

Using Qualified Member Names in Unique Member Name Outlines

Qualified member names are also applicable for referencing member names in a unique member name outline (an outline with duplicate member names not enabled). Qualified member names can be used to differentiate shared members from their original members.

For example, in the Sample Basic database, the member [100-20] is an original member under parent [100], and has a shared member associated with it under parent [Diet]. The shared member [100-20] can be referred to explicitly, using the unique name [Diet].[100-20], as shown in the following query:

SELECT
 {Sales} 
ON COLUMNS,
 {[[Diet]].[100-20]]]} PROPERTIES MEMBER_UNIQUE_NAME
ON ROWS
FROM Sample.Basic;

The double closing brackets in the example are needed as escape characters. For more details about the MDX syntax, see MDX Syntax for Specifying Duplicate Member Names and Aliases.