大纲中的成员名称重复
在 Essbase 大纲中启用重复的成员名称时,多个成员可以具有相同的名称。仅当大纲启用了重复成员时,才能使用重复的名称。
关于重复成员名称大纲
块存储和聚合存储数据库具有重复的成员名称。创建重复成员的方式与为唯一成员名称大纲添加成员的方式相同。请参见 Naming Conventions for Dimensions,Members,and Aliases 。
保存重复的成员名称大纲时, Essbase 会验证重复的成员名称。限定命名语法可帮助您区分重复项。
图 4-2 显示了重复成员大纲的示例,其中纽约州成员和纽约市成员在大纲中显示为纽约。
图 4-2 重复成员名称“纽约”

图 4-2 中示例的限定成员名称为 [State].[New York] 和 [City].[New York]。
要创建启用重复成员名称的大纲,请使用 Essbase Web 界面中的大纲属性,或者使用 create database MaxL 语句和 using non_unique_members 子句创建多维数据集。或者,如果在“Cube.Settings(多维数据集。设置)”选项卡上从应用程序工作簿构建多维数据集,请将 Outline Type(大纲类型)属性设置为 Duplicate(复制)。
注意:
不能将重复的成员大纲转换回唯一的成员大纲。
另请参阅关于重复成员名称。
注意:
重复的成员大纲属性维没有附加前缀或后缀,这些前缀或后缀应用于唯一大纲中的属性维。例如,在重复成员布尔值属性维中,成员不包括贴在 TRUE 和 FALSE 成员上的维、父代、祖父代或祖先。请参阅设置属性维的成员名称的前缀和后缀格式。
大纲中存在重复的成员名称和别名限制
在数据库大纲中创建重复的成员名称和别名时,以下内容必须始终唯一:
-
维名称
-
生成名称和级别名称
-
父成员下的同级
如果使用别名,则将应用此附加限制:包含重复别名且仅具有重复成员大纲的别名表有效。
注意:
请勿在成员、维或别名中使用引号 (" ")、方括号 ([ ]) 或制表符。例如,不能创建成员名称“[New York].[Area 1]”。对于包含无效字符序列的成员名称,大纲验证不会显示错误,您可以保存大纲;但是, Essbase 无法准确查询数据。
用于指定重复成员名称和别名的语法
尽管大纲中显示重复的成员名称,但每个非共享的成员名称都会唯一地标识数据库中的成员。限定名称格式用于区分重复的成员名称。必须使用限定名称来指定重复的成员名称。
可以采用以下任一格式指定限定成员或别名:
-
完全限定成员名称
-
通过区分祖先限定成员名称
-
快捷方式限定成员名称
注意:
限定名称必须包含所有别名或所有成员名称。不能在限定名称中混合成员名称和别名。
完全合格的成员名称
全限定成员名称由重复的成员或别名和所有祖先组成,直到包括维名称。每个名称必须括在方括号 ([ ]) 中并由句点 (.) 分隔。语法如下:
[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 相同的语法是最佳的,但不是必需的。
表 4-1 快捷方式限定名称语法
| Scenario | 限定名称语法 | 范例 |
|---|---|---|
|
重复成员名称存在于层代 2 |
|
|
|
重复成员名称存在于大纲中但在维中唯一 |
|
|
|
重复成员名称具有唯一的父代 |
|
|
|
重复成员名称存在于层代 3 |
|
|
|
重复成员名称存在于命名的层代或级别,但成员在其层代或级别唯一 |
|
|
|
在某些情况下,这种区分祖先方法用作快捷方式。 |
|
|
唯一成员名称大纲中的合格成员名称
限定成员名称也适用于引用唯一成员名称大纲中的成员名称(未启用具有重复成员名称的大纲)。限定成员名称可用于将共享成员与其原始成员区分开来。
例如,在 Sample Basic 数据库中,成员 [100-20] 是父代 [100] 下的原始成员,并且在父代 [Diet] 下具有与其关联的共享成员。可以使用唯一名称 [Diet].[100-20] 显式引用共享成员 [100-20],如下查询所示:
SELECT
{Sales}
ON COLUMNS,
{[[Diet]].[100-20]]]} PROPERTIES MEMBER_UNIQUE_NAME
ON ROWS
FROM Sample.Basic;本示例中的双括号需要作为转义符。有关 MDX 语法的更多详细信息,请参见 MDX Syntax for Specifying Duplicate Member Names and Aliases 。