0

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

-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 那里得到了一个错误,使用 Mondrian 说

Mondrian 错误:在多维数据集“V”中找不到 MDX 对象“[D].[A]”。所以我也不能访问。

这是我第一次尝试 MDX,所以我意识到我可能错过了立方体构造或语言理解方面的一些东西。

4

1 回答 1

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 层次结构的组合出现在输出中。请注意,这实际上不会让您从年份向下钻取到类型,而是它们会并排显示。

于 2012-11-28T07:14:35.483 回答