【问题标题】:MDX: group by with LastPeriods group by, Mondrian Schema: levelType hoursMDX:使用 LastPeriods 分组依据,蒙德里安模式:levelType hours
【发布时间】:2013-02-25 17:12:02
【问题描述】:

我是 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.)

蒙德里安模式文档列出了时间级别类型 TimeYearsTimeQuartersTimeMonthsTimeDays是否也可以定义小时数?

非常感谢。

【问题讨论】:

    标签: mdx cube mondrian


    【解决方案1】:

    1) MDX 中的range function 返回您正在使用的级别的成员。在你的情况下:

     [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) 不知道 Mondrian,但无论如何您都可以根据“现有”表创建时间维度

    【讨论】:

    • 1.) Mondrian 不支持子查询(请参阅jira.pentaho.com/browse/MONDRIAN-980),所以我将不得不接受您的第一个建议。 2.) Grrrr,我在配置中有一个错字:我使用“TimeHour”而不是复数“TimeHours”,并且在日志文件中出现错误。后者工作正常。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    相关资源
    最近更新 更多