2

我是 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 模式文档列出了时间级别类型TimeYearsTimeQuartersTimeMonthsTimeDays是否也可以定义小时数?

非常感谢。

4

1 回答 1

1

1) MDX 中的范围函数返回您正在使用的级别的成员。在你的情况下:

 [Time].[2012].[Q1 2012].[2].[2012-02-08]:[Time].[2012].[Q4 2012].[11].[2012-11-08] 

您正在使用天数,这就是您获得所有天数的原因。在 range 函数中使用月而不是天。如果您不想要 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)不知道蒙德里安,但无论如何您都可以根据“现有”表创建时间维度

于 2013-02-26T15:23:56.747 回答