MDX查询不同维度的不同组合

时间:2015-04-01 00:04:16

标签: ssas mdx

我有一个用尺寸定义的立方体:

  • 日期(年,月,周,日期)
  • 产品

措施:

  • 销售额
  • 单位

每周都会推出一组精选产品(即“在售”)。我试图写的查询是,在给定的时间点,过去n周内所有促销商品的总销售额和销售单位是多少。

我可以轻松编写一个查询,让我获得这些值一周 - 它看起来像这样:

SELECT
   NON EMPTY { [Measures].[Sales Amount], [Measures].[Units] } ON COLUMNS
FROM
   [Cube]
WHERE
   (
      { [Product].[Product].[Product].&[ProductA], [Product].[Product].[Product].&[ProductB] },
      [Date].[Week].[Week].[Week 8]
   )

我在MDX中无法表达的是,“第8周,给我这些产品的销售,第9周给我这些其他产品的销售”,等等。

正在推广的产品的概念不会以任何方式在多维数据集中建模。我考虑过这样做,但我不确定如何实现它(一个SCD,pehaps?)。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

您可以创建一组元组 - 只要集合中的每个元组具有相同的维度:

SELECT 
  NON EMPTY 
    {
      [Measures].[Sales Amount]
     ,[Measures].[Units]
    } ON 0
 ,NON EMPTY 
    {
      (
        [Product].[Product].[Product].&[ProductA]
       ,[Date].[Week].[Week].[Week 8]
      )
     ,(
        [Product].[Product].[Product].&[ProductB]
       ,[Date].[Week].[Week].[Week 9]
      )
    } ON 1
FROM [Cube];

如果您想要查看每个成员的所有可能现有组合,或者只是交叉加入每个层次结构中的所有成员:

SELECT 
  NON EMPTY 
    {
      [Measures].[Sales Amount]
     ,[Measures].[Units]
    } ON 0
 ,NON EMPTY 
    [Product].[Product].MEMBERS * [Date].[Week].MEMBERS ON 1
FROM [Cube];