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')
答案 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
...