我是MDX和Mondrian的新手,有两个与时间相关的问题:
1)。
MDX命令
SELECT NON EMPTY {[Country].[Country].Members} ON COLUMNS, [Time].[2012].[Q1 2012].[2].[2012-02-08]:[Time].[2012].[Q4 2012].[11].[2012-11-08] ON ROWS FROM [MyCube] WHERE {[Measures].[Sales]}
打印按天分组的结果:
2012-02-08 | 2873 | 9829 | ...
2012-02-09 | ...
但我想以天为单位定义日期范围并按月分组结果:
2012-02 | 34298| ...
2012-03 | ...
2)。
Mondrian架构文档列出了时间级别类型 TimeYears , TimeQuarters , TimeMonths 和 TimeDays 。 是否也可以定义小时数?
非常感谢。
答案 0 :(得分:1)
1) MDX中的range function返回您正在使用的级别的成员。在你的情况下:
[Time].[2012].[Q1 2012].[2].[2012-02-08]:[Time].[2012].[Q4 2012].[11].[2012-11-08]
你正在使用天,所以这就是为什么你会得到所有的日子。在范围函数中使用月份而不是天数。如果您不想在8日之前获得数据,则选项将使用子选择进行过滤:
SELECT
NON EMPTY {[Country].[Country].Members} ON COLUMNS,
[Time].[Your month level].members} ON ROWS
FROM (
SELECT
{[Measures].[Sales]} ON 0,
[Time].[2012].[Q1 2012].[2].[2012-02-08]:[Time].[2012].[Q4 2012].[11].[2012-11-08] ON 1,
FROM [MyCube] )
2)不知道对于蒙德里安,但无论如何,你可以根据“现有”表创建时间维度