蒙德里安 - 为什么我需要显式级别来引用层次结构中的成员?

Mondrian - why do I need explicit level to reference a member in a hierarchy?

如果我想在 Mondrian MDX 查询(使用 Mondrian 4.4)中引用层次结构中的成员,我必须在表达式中明确引用级别。例如,在 SSAS 中我可以做类似

[Customer].[Customer Geography].[Canada]

但在 Mondrian 中我必须明确添加第一层级的名称

[Customer].[Customer Geography].[Country-Region].[Canada]

我应该在哪里查找故障排除?我的层次结构很简单,只有两层 hasAll="false"

SSAS 当你写这个 [Customer].[Customer Geography].[Canada] 我相信它是这个的简写:

[Customer].[Customer Geography].[All].[Canada]

这两个脚本给出相同的结果:

SELECT 
  [Customer].[Customer Geography].[All].[Canada] ON 0
FROM [Adventure Works];

SELECT 
  [Customer].[Customer Geography].[Canada] ON 0
FROM [Adventure Works];

因此,如果您的层次结构没有 [All] 成员,则成员将是最高级别的子级。我认为 SSAS 将假定最高级别,即使您没有明确说明它,但看起来 mondrian 需要它明确添加到您的 mdx.