在具有多个层次结构的维度上选择一个层次结构

时间:2012-11-23 19:54:06

标签: mdx olap data-warehouse mondrian

我确实有一个立方体V,它有一个尺寸Q和一些尺寸D,F。 在维度D中我想要有两个共享一些共同成员的层次结构,这里它们是(2个层次结构是A和T,共同成员是M和I):

-D
   -A
       +A
       +M
       +I
   -T
       +T
       +M
       +I

我正在努力创建一个MDX查询来访问A和T:

select {[Measures].[Q]} ON COLUMNS,
  {([F], [D].[A]} ON ROWS
from [V]

但是我确实从JPivot那里得到了一个错误,他使用蒙德里安说

蒙德里安错误:在立方体'V'中找不到MDX对象'[D]。[A]'。所以我无法访问。

这是我第一次尝试使用MDX,所以我认识到我可能错过了多维数据集构建或语言理解的内容。

1 个答案:

答案 0 :(得分:2)

通常,当您引用的成员在维度中不存在时,会返回该错误。引用特定层次结构的正确语法(除了默认值)是[Dimension.Hierarchy],所以试试这个

select {[Measures].[Q]} ON COLUMNS,
  {([F], [D.A])} ON ROWS
from [V]

假设您的A层次结构具有All成员,那么它应该可以工作。

编辑:我认为你不能在蒙德里安这样做但是在尝试之后,事实证明你可以:尝试交叉加入两个层次结构的成员:

SELECT NON EMPTY {[Measures].[Q]} ON COLUMNS,
  NON EMPTY CROSSJOIN([D.A].[Year].Members, [D.T].[Type].Members) ON ROWS
FROM [V]

NON EMPTY函数将阻止没有值的A和T层次结构组合显示在输出中。请注意,这不会真正允许您从年份下钻到类型,而是它们将并排显示。