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

时间:2014-06-15 06:53:47

标签: mdx mondrian

mdx新手。 我有一个具有日期维度的查询。年份是整数,属于CalYear级别。 我正在使用蒙德里安(通过Pentaho)

我如何展示2012年后的岁月?数据年份为2012年,2013年,2014年的整数值。 这是一个时间维度;这个级别是一年。

如果我从这个查询开始:

SELECT
     [Measures].[SalesMonth] ON COLUMNS,
    {[YearMonth.CalYearMonth].CalYear.members} ON ROWS
    FROM [mt_report] 

我得到了三行的结果。

我试试这个:

SELECT
    [Measures].[SalesMonth] ON COLUMNS,
    Filter({[YearMonth.CalYearMonth].CalYear.members},
[YearMonth.CalYearMonth].CalYear.CurrentMember.Value > 0) ON ROWS
    FROM [mt_report]

并返回所有数据(与第一个查询相同)

   SELECT
     [Measures].[SalesMonth] ON COLUMNS,
    Filter({[YearMonth.CalYearMonth].CalYear.members},
[YearMonth.CalYearMonth].CalYear.CurrentMember.Value > 9999) ON ROWS
    FROM [mt_report]

但这也会返回相同的内容。


这有效......

Filter({[YearMonth.CalYearMonth].[CalYear].Members},
[YearMonth.CalYearMonth].[CalYear].CurrentMember.name > '2012')

1 个答案:

答案 0 :(得分:1)

在MDX中,您可以使用range operator,其中NULL为第二个参数:

如果[YearMonth]。[2012]是2012年的成员:

SELECT
  [YearMonth].[Year].[2013]:NULL on 0
...

使用2012并使用nextMember MDX功能。

SELECT
  [YearMonth].[Year].[2012].nextMember:NULL on 0
...
相关问题