以下哪种 MDX 语法最 'correct'?
Which of the following MDX syntax is most 'correct'?
在以下方法中,引用成员的首选方法是什么?
-- dimension.hierarchy.level.member
[Team].[Name].[All].[Detroit Lions],
[Team].[Name].[Name].[Detroit Lions], -- how does 'name' get auto-added as a level?
[Team].[Name].[Detroit Lions],
[Team].[Detroit Lions],
[Detroit Lions],
它们在 SELECT
子句中对我产生相同的结果。此外,为什么可以在第二个语句中直接从 Name
(属性)到 Detroit Lions
(成员)到 'jump' - 隐式添加解析为:
[Name].[Detroit Lions] ==> [Name].[All].[Detroit Lions]
或者 'work' 究竟如何?
我假设您在这里使用的是用户层次结构。基于此,这里是答案。
最好的推荐方式是使用强名称,例如
“[团队].[姓名].[姓名].&[底特律雄狮队]”。 (您需要检查个人成员的确切强名)。为什么这是最好的方法,因为 MDX 无需进行任何查找即可找到该成员。
如果您不使用强名称,“[Team].[Name].[Name].[Detroit Lions]”也很有效。
现在为什么要做剩下的工作。它们之所以有效,是因为 MDX 将遍历您的所有维度来找到该成员。在这个成员第一次出现时,它会被选中,如果你想引用第二次出现的“底特律雄狮”,你就有麻烦了。
现在其他条款是什么意思。
- “[底特律雄狮队]”你正在经历所有维度
- “[Team].[Detroit Lions]”您正在遍历 TEAM 维度中的所有成员
- [Team].[Name].[Detroit Lions]”您正在遍历维度 TEAM 的所有成员,层次结构 NAME
- "[Team].[Name].[Name].[Detroit Lions]", 您正在浏览维度团队的所有成员,层级名称,级别名称。
- "[球队].[姓名].[全部].[底特律雄狮]"这与 3
相同
在以下方法中,引用成员的首选方法是什么?
-- dimension.hierarchy.level.member
[Team].[Name].[All].[Detroit Lions],
[Team].[Name].[Name].[Detroit Lions], -- how does 'name' get auto-added as a level?
[Team].[Name].[Detroit Lions],
[Team].[Detroit Lions],
[Detroit Lions],
它们在 SELECT
子句中对我产生相同的结果。此外,为什么可以在第二个语句中直接从 Name
(属性)到 Detroit Lions
(成员)到 'jump' - 隐式添加解析为:
[Name].[Detroit Lions] ==> [Name].[All].[Detroit Lions]
或者 'work' 究竟如何?
我假设您在这里使用的是用户层次结构。基于此,这里是答案。
最好的推荐方式是使用强名称,例如
“[团队].[姓名].[姓名].&[底特律雄狮队]”。 (您需要检查个人成员的确切强名)。为什么这是最好的方法,因为 MDX 无需进行任何查找即可找到该成员。
如果您不使用强名称,“[Team].[Name].[Name].[Detroit Lions]”也很有效。
现在为什么要做剩下的工作。它们之所以有效,是因为 MDX 将遍历您的所有维度来找到该成员。在这个成员第一次出现时,它会被选中,如果你想引用第二次出现的“底特律雄狮”,你就有麻烦了。 现在其他条款是什么意思。
- “[底特律雄狮队]”你正在经历所有维度
- “[Team].[Detroit Lions]”您正在遍历 TEAM 维度中的所有成员
- [Team].[Name].[Detroit Lions]”您正在遍历维度 TEAM 的所有成员,层次结构 NAME
- "[Team].[Name].[Name].[Detroit Lions]", 您正在浏览维度团队的所有成员,层级名称,级别名称。
- "[球队].[姓名].[全部].[底特律雄狮]"这与 3 相同