SSAS - 顶部或底部的总和

时间:2012-04-13 13:40:57

标签: sum ssas mdx

SELECT  
  [Measures].[Internet Sales Amount] ON COLUMNS  
 ,Tail  
  (  
    [Date].[Calendar Year].[Calendar Year].MEMBERS  
   ,2  
  ) ON ROWS  
FROM [Adventure Works];  

以上MDX查询为我输出:

  

年度互联网销售额

     

CY 2003 $ 9,791,060.30

     2004年CY $ 9,770,899.74

我理解这个查询是如何工作的,但我想在一个立方体中创建计算量度,它总是给我底部2年的总和。这该怎么做?我是SSAS的新手。我擅长设计简单的测量和尺寸,但是当谈到使用MDX时,我大多陷入困境。

PS:我尝试过使用TopCount,BottomCount等,但在这里我想按“年份”订购,这是一个维度。

任何帮助都将不胜感激。

谢谢,

帕里

1 个答案:

答案 0 :(得分:1)

以下查询计算对日期维度的最后2年求和的度量:

WITH
MEMBER [Measures].[Sales from the last 2 Years]
    AS Aggregate( Tail( [Date].[Calendar Year].[Calendar Year].Members, 2)
                , [Measures].[Internet Sales Amount]
                )

SELECT { [Measures].[Sales from the last 2 Years]
       } ON COLUMNS
     , { Tail( [Date].[Calendar Year].[Calendar Year].Members, 2)
       } ON ROWS
    FROM [Adventure Works]

其他有趣的查询,是计算每年及其之前总和的度量:

WITH
MEMBER [Measures].[Sales from 2 years]
    AS Aggregate( { [Date].[Calendar Year].CurrentMember.PrevMember
                  : [Date].[Calendar Year].CurrentMember }
                , [Measures].[Internet Sales Amount]
                )

SELECT { [Measures].[Internet Sales Amount]
       , [Measures].[Sales from 2 years]
       } ON COLUMNS
     , NON EMPTY
       { [Date].[Calendar Year].[Calendar Year]
       } ON ROWS
    FROM [Adventure Works]

它总和,因为度量[Measures].[Internet Sales Amount]的聚合类型是SumAggregate函数根据度量的聚合类型聚合。

MDX是一个难以掌握的主题;如果你刚开始,我建议你阅读这本书MDX Solutions, 2nd edition