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

MDX query different combinations of different dimensions

我有一个定义了维度的立方体:

和措施:

每周都会推广 select 组产品(即 "on sale")。我正在尝试编写的查询是,在给定的时间点,过去 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无法表达的是,"for week 8, give me the sales for these products, and for week 9 give me the sales for these other products",等等

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

如有任何帮助,我们将不胜感激。谢谢

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

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];