MDX:group by与LastPeriods group by,蒙德里安模式:levelType小时

MDX:group by与LastPeriods group by,蒙德里安模式:levelType小时,mdx,cube,mondrian,Mdx,Cube,Mondrian,我是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-0

我是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是否也可以定义小时数?

非常感谢。

1) MDX中的返回所使用级别的成员。就你而言:

 [Time].[2012].[Q1 2012].[2].[2012-02-08]:[Time].[2012].[Q4 2012].[11].[2012-11-08] 
你用的是天,所以你要用所有的天。在范围函数中使用月而不是天。如果您不希望数据在8号之前出现,可使用subselect进行筛选:

 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) Mondrian不知道,但在任何情况下,您都可以基于“现有”表创建时间维度。

1。)Mondrian不支持子查询(请参阅),因此我必须接受您的第一个建议。2.)Grrrr,我在配置中有一个输入错误:我使用了“TimeHour”而不是复数“TimeHours”,并且在日志文件中出现了错误。后者效果很好。非常感谢。