MDX 层次结构查询

Posted

技术标签:

【中文标题】MDX 层次结构查询【英文标题】:MDX Hierarchy query 【发布时间】:2016-03-11 15:51:41 【问题描述】:

我使用 Pentaho BI 并正在为简单的仪表板准备数据。我有两级日期维度(年和月)的记录。当我从 saiku 查询时:

WITH SET [~ROWS] AS
Hierarchize([Date].[Year].Members, [Date].[Month].Members)
SELECT
NON EMPTY [Measures].[Count] ON COLUMNS, 
NON EMPTY [~ROWS] ON ROWS
FROM [data]

Pentaho 为每个第一个月、每个第二个月...(1-12)创建一个总和,并为每年创建一个总和。我需要为每个 year+month 对计算一个总和。如何编辑查询?

实际图表:

目标图表:

【问题讨论】:

你试过了吗 - WITH SET [~ROWS] AS Hierarchize([Date].[Year].[Year].Members, [Date].[Month].[Month].Members) SELECT NON EMPTY [Measures].[Count] ON COLUMNS, NON EMPTY [~ROWS] ON ROWS FROM [data] 【参考方案1】:

我假设您使用 Pentaho CDE 创建仪表板。

将 MDX 查询的 Banded Mode 属性设置为 Classic(而不是 Compact)。

【讨论】:

这更好但并不理想。我来自:!(postimg.org/image/8k3yinbw7)这个!(postimg.org/image/75k7ioqq3)但我需要这个:!(postimg.org/image/6cwes1ml5)(来自saiku)。还有几年的总和。 下一步是去掉All Datums ~ 前缀(使用javascript)。更改日期的角度(使用扩展点)。进行这些更改后,它应该看起来像您需要的那样.. :) 无论如何,您应该使用 CDA 编辑器比较 MDX 输出(在 Pentaho 中打开仪表板的CDA 文件)。您可以在列中看到更易于分析的原始数据输出。在图表中,您无法看到 MDX 输出的所有列和行。

以上是关于MDX 层次结构查询的主要内容,如果未能解决你的问题,请参考以下文章

SSAS MDX WHERE 子句语法 - 从同一层次结构中过滤多个值

具有多个属性层次结构的计算成员 - MDX

MDX 在层次结构之间导航

MDX 获取层次结构值

如何根据 mdx 中的另一个维度层次结构过滤维度层次结构

如何使用 MDX 获取不可见属性和用户定义的层次结构的名称?