Ssas 如何在MDX中对下一个期间求和

Ssas 如何在MDX中对下一个期间求和,ssas,mdx,Ssas,Mdx,我已经创建了这个计算过的成员来计算下一个周期的总和,它非常慢。相反,如果我使用LastPeriods计算对过去的前几个周期执行相同的操作,它将运行平稳。 知道为什么会这样吗?下节课还有其他功能吗 WITH MEMBER [Measures].[Avg Dmd BUM 4Months] AS Avg( {([Date].[Calendar].currentMember,[Measures].[Dmd Fcst BUM]) ,([Date].[Calendar

我已经创建了这个计算过的成员来计算下一个周期的总和,它非常慢。相反,如果我使用LastPeriods计算对过去的前几个周期执行相同的操作,它将运行平稳。 知道为什么会这样吗?下节课还有其他功能吗

WITH 
MEMBER [Measures].[Avg Dmd BUM 4Months] 
AS 
   Avg(  
      {([Date].[Calendar].currentMember,[Measures].[Dmd Fcst BUM])
      ,([Date].[Calendar].currentMember.lead(1),[Measures].[Dmd Fcst BUM])
      ,([Date].[Calendar].currentMember.lead(2),[Measures].[Dmd Fcst BUM])
      ,([Date].[Calendar].currentMember.lead(3),[Measures].[Dmd Fcst BUM])
     }
   )     

也许可以尝试更传统的Avg格式-使用第二个参数:

Avg(  
      {[Date].[Calendar].currentMember
      ,[Date].[Calendar].currentMember.lead(1)
      ,[Date].[Calendar].currentMember.lead(2)
      ,[Date].[Calendar].currentMember.lead(3)
     }
  ,[Measures].[Dmd Fcst BUM]
   ) 
可以将滞后与负数一起使用,也可以使用范围运算符“:”

Avg(  
      [Date].[Calendar].currentMember: [Date].[Calendar].currentMember.lag(-3)
     ,[Measures].[Dmd Fcst BUM]
   )