使用MDX在时间层次结构中按月份分组

使用MDX在时间层次结构中按月份分组,mdx,olap,Mdx,Olap,我有一个具有以下级别的维度: 年头 月份 日子 我想在不考虑年份的情况下,按月份获取一些数据,即1月份的婚礼 如果我有: 2011年1月-43日 2012年1月20日 2013年1月30日 我想要的是: 一九九三年一月 可能吗 谢谢 编辑: 我尝试过这个查询(有销售,没有婚礼): 但是我只得到第一个一月。是的,这取决于你如何构建你的日历维度。在本例中,您将有一个月字符串字段,并且 一月 二月 。。。等等。。。请注意,月份字符串字段没有包含年份 此字段将是SSAS维度中的可聚合集。在创建MDX

我有一个具有以下级别的维度:

  • 年头

  • 月份

  • 日子

我想在不考虑年份的情况下,按月份获取一些数据,即1月份的婚礼

如果我有:

2011年1月-43日

2012年1月20日

2013年1月30日

我想要的是:

一九九三年一月

可能吗

谢谢

编辑:

我尝试过这个查询(有销售,没有婚礼):


但是我只得到第一个一月。

是的,这取决于你如何构建你的日历维度。在本例中,您将有一个月字符串字段,并且

  • 一月
  • 二月
  • 。。。等等。。。请注意,月份字符串字段没有包含年份

    此字段将是SSAS维度中的可聚合集。在创建MDX查询时,您会将月份放在行上,将婚礼放在列上。使用这种方法,你应该得到你想要的结果

    因此,执行以下操作将使您获得所有1月份的销售额:

    SELECT NON EMPTY {[Measures].[Sales]} ON COLUMNS, NON EMPTY {[Time].[Year] * [Time].[Jan]} ON ROWS FROM [SteelWheelsSales] 挑选 列上的非空{[Measures].[Sales]}, 行上的非空{[Time].[Year]*[Time].[Jan]} 来自[钢轮萨莱斯]
    随着[时间][月份][一月]我进入了第一个一月。如果我对[Time].[2011].[Jan],[Time].[2012].[Jan],[Time].[2013].[Jan]使用求和函数,我可以得到正确的结果,但如果我有2014年的新数据,我必须修改查询。有没有可能在不指定年份的情况下获得此信息?类似于[Time].[Years].[Jan]或[Time].[all Years].[Jan]?这取决于SSAS中维度的设置方式,特别是关键列。。。您是使用向导提供的日历,还是使用自己的日历?看起来你想要一个定制的。。。通过自定义,您可以按非规范化的月份字符串值分组,在本例中是“一月”…实际上,我使用的是Pentaho。我已经创建了自己的时间维度。通过字符串月份名称聚合应该会得到相同的结果。谢谢,但它不起作用。我得到这个错误:MondrianException:Mondrian错误:没有与签名“*”匹配的函数 SELECT NON EMPTY {[Measures].[Sales]} ON COLUMNS, NON EMPTY {[Time].[Year] * [Time].[Jan]} ON ROWS FROM [SteelWheelsSales]