MDX 查询以对具有特定日期范围的日期维度进行分组

Posted

技术标签:

【中文标题】MDX 查询以对具有特定日期范围的日期维度进行分组【英文标题】:MDX query to group on year of date dimension with specific date range 【发布时间】:2018-10-02 13:19:33 【问题描述】:

我有 SQL 查询 从“2017-09-01”和“2018-09-30”按年份(日期)分组的表中选择年份(日期)、总和(金额)。

这将为我提供所选日期范围内 2017 年和 2018 年的金额总和。相同的 我正在尝试使用日期维度进行 mdx 查询

在列上选择 [Date].[year].CurrentMember*[Measures].[departureUpsellRevenue],[Date].[2017].[09].[1]:[Date].[2018] .[09].[30] 来自 [CUBE] 的行

它给了我错误 Mondrian Error:Hierarchy '[Date.calendar]' 出现在多个独立轴上。

【问题讨论】:

【参考方案1】:

尝试子选择

SELECT 
[Date].[year].[year].MEMBERS ON 0
,[Measures].[departureUpsellRevenue] ON 1
FROM 
(
SELECT
[Date].[2017].[09].[1]:[Date].[2018].[09].[30] ON 0
FROM [CUBE]
);

【讨论】:

蒙德里安错误:无法解析查询'SELECT [Date].[year].[year].MEMBERS ON 0,[Measures].[departureUpsellRevenue] ON 1 FROM (SELECT[Date]. [2017].[09].[1]:[Date].[2018].[09].[30]ON 0 [LocationAndSalesCube]);' 蒙德里安错误:第 1 行第 88 列的语法错误,标记 '(' 我错过了子选择中的 FROM 同样的错误,发现mondrian不支持子查询,jira.pentaho.com/browse/MONDRIAN-980 对于解决方案,我创建了日期的新维度,一个维度用于位置,另一个用于行。

以上是关于MDX 查询以对具有特定日期范围的日期维度进行分组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MDX 中对同一维度进行分组和过滤

使用 MDX 查询从日期范围中获取特定日期的时间表

具有两个或多个日期范围的 MDX 查询

mondrian mdx 过滤日期维度中年份级别的集合

范围内总和计数的 MDX 计算

Mondrain MDX 用于日期范围之间的记录,其中开始日期和结束日期是单独的列