我创建 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] )
但在练习中会抛出异常:
Caused by: mondrian.olap.MondrianException: Mondrian Error:Hierarchy '[DTime.TimeYearQuaterMonthDayTimestamp]' appears in more than one independent axis.
你能帮我吗?如何改进这个查询,使其在练习中不抛出异常?
最佳答案
解释错误消息:当尺寸全部位于同一轴内时,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 个成员)或名为 [Hour](包含 24 个成员)的虚拟维度,以便显示月与日或月与小时的报告。
关于java - 在一个轴和 where mdx 查询中使用相同的层次结构失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636345/