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

mondrian mdx过滤日期维度中年度级别的集合,mdx,mondrian,Mdx,Mondrian,mdx新手。 我有一个具有日期维度的查询。年份是整数,并且在水平方向上。 我用的是蒙德里安(via Pentaho) 2012年后我该如何表现?具有整数值的数据年份为2012年、2013年、2014年。 这是一个时间维度;这个水平是一年 如果我从这个查询开始: SELECT [Measures].[SalesMonth] ON COLUMNS, {[YearMonth.CalYearMonth].CalYear.members} ON ROWS FROM [mt_rep

mdx新手。 我有一个具有日期维度的查询。年份是整数,并且在水平方向上。 我用的是蒙德里安(via 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]
并返回所有数据(与第一个查询相同)

但是

但这也返回了同样的结果


这很有效

Filter({[YearMonth.CalYearMonth].[CalYear].Members},
[YearMonth.CalYearMonth].[CalYear].CurrentMember.name > '2012')
在MDX中,可以使用,并将NULL作为第二个参数:

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

SELECT
  [YearMonth].[Year].[2013]:NULL on 0
...
使用2012和使用MDX函数也是如此

SELECT
  [YearMonth].[Year].[2012].nextMember:NULL on 0
...

在蒙德里安,它一无所获。这被报告为一个bug,但基本上标记为“无法修复”。但根据您的想法,这对Mondrian是有效的:在[YearMonth.CalYearMonth].[CalYear].[2013]:[YearMonth.CalYearMonth].[CalYear].[2013]列上选择{[Measures].[SalesMonth]}。在[mt_report]的行上选择LastSibling
SELECT
  [YearMonth].[Year].[2012].nextMember:NULL on 0
...