如何通过mdx计算4个月的累计值?

时间:2017-04-19 19:33:48

标签: mdx

如何在function mainFunction(options) { const defaults = { /* default values */ }; options = Object.assign({}, defaults, options); // Use the options later } 查询中计算过去3个月的累计值+当前月份值?

如果我选择May,那么它将给出此集合的累积值{Feb,March,April,May}

2 个答案:

答案 0 :(得分:1)

如果您需要涵盖不同的计数和总和,那么AGGREGATE是要使用的功能,但如果不需要不同的计数,那么您只需使用SUM

如果您选择了一个月或几个月ON ROWS然后返回所选月份,那么以下内容应该有效:

[Date].[Date - Calendar Month].CurrentMember

然后返回3个月,您可以添加LAG功能:

[Date].[Date - Calendar Month].CurrentMember.LAG(3)

现在要使用:运算符来获取此范围的月份:

[Date].[Date - Calendar Month].CurrentMember.LAG(3) 
: 
[Date].[Date - Calendar Month].CurrentMember

所以现在可以针对特定的措施使用,例如像这样的收入:

SUM(
  [Date].[Date - Calendar Month].CurrentMember.LAG(3) 
  : 
  [Date].[Date - Calendar Month].CurrentMember
 ,[Measures].[Revenue]
)       

在脚本中,这将添加到WITH子句:

WITH    
MEMBER [Measures].[4MonthRevenue] AS
    SUM(
      [Date].[Date - Calendar Month].CurrentMember.LAG(3) 
      : 
      [Date].[Date - Calendar Month].CurrentMember
     ,[Measures].[Revenue]
    )  
SELECT 
    [Date].[Date - Calendar Month].[Calendar Month].MEMBERS
      ON ROWS,
    NON EMPTY
      [Measures].[4MonthRevenue]
        ON COLUMNS
FROM [YourCube];

答案 1 :(得分:0)

我已经为这个案例发布了一个非常有帮助的article

Aggregate(
    LastPeriods(
        3,
        StrToMember('[Date].[Calendar].[Month].&[' + Format(Now(),'yyyyMM') + ']')
    ),
    [Measures].[YourNotCalulatedMeasure]        
)