在一个轴上具有相同的层次结构并且在mdx查询的位置失败

时间:2013-12-17 14:09:04

标签: java database mdx aggregate hierarchy

我创建了MDX查询:

with member [DTime.TimeYearQuaterMonthDayTimestamp].[Times] as
     Aggregate({[DTime.TimeYearQuaterMonthDayTimestamp].[2013].[4].[11].[17],
               [DTime.TimeYearQuaterMonthDayTimestamp].[2013].[4].[11].[18]}
              )
SELECT {[DTime.TimeYearQuaterMonthDayTimestamp].[Year].[Month} ON 1,
       {Measures.Price} ON 0
  FROM [Sales]
 WHERE ([DEndAuction].[true],[DTime.TimeYearQuaterMonthDayTimestamp].[Times] )

但是在运动中抛出异常:

  

引起:mondrian.olap.MondrianException:Mondrian错误:层次结构'[DTime.TimeYearQuaterMonthDayTimestamp]'出现在多个独立轴上。

你能帮帮我吗?如何改善这个在运动中不会抛出异常的查询?

1 个答案:

答案 0 :(得分:1)

解释错误消息:当MDX全部位于同一轴内时,MDX允许多次使用该维。例如,如果您有称为[A]和[B]的维度,则允许这样做:

SELECT {[A].whatever} ON ROWS, {[B].whatever} ON COLUMNS FROM [mycube]

这是不允许的:

SELECT {[A].whatever} ON ROWS, {[A].whatever} ON COLUMNS FROM [mycube]

同样适用于WHERE子句,它类似于另一个轴。您无法在1以及WHERE内使用[DTime]维度。

有些人创建了一个名为[DayOfWeek]的虚拟维度,其中有7名成员,或者[小时]有24名成员,以显示一个月份与天数或月份相对于小时的报告。