获得ssas中前几天的总和

时间:2015-04-20 21:30:51

标签: ssas

请我试着在一个月开始前的最后60天

我有一个从下面的查询返回的集合

SELECT
   non empty
   [Measures].[TRANSACTIONS Count] on 0,
   non empty ([TRANSACTIONS].[Days].[Days],                                                                                                [TRANSACTIONS].[Transaction Month].[Transaction Month])  on 1 from [cube] 

通过硬编码下个月开始的交易日,我可以得到第2个月前最后60天的累计数量

  WITH MEMBER
 [Measures].[Cumm Account Count]
AS
(
    AGGREGATE( [TRANSACTIONS].[Days].CurrentMember:NULL ,[Measures].[TRANSACTIONS Count])
)

 SELECT
   non empty [Measures].[Cumm Account Count] on 0,
   non empty [TRANSACTIONS].[Days].&[3]:[TRANSACTIONS].[Days].&[3].lead(60) on 1 from  [cube];
请问如何在不使用日期数字的情况下实现上述结果,我尝试使用尾函数(获取月份和开始日期)

non empty tail(
([TRANSACTIONS].[Days].[Days],
tail([TRANSACTIONS].[Transaction Month].[Transaction Month],1)
),1)

,所以我希望如果我能用60天的范围函数来使用它,那么下个月只需要获得60天范围的尾部(xx,2),但它不会工作,因为范围功能只接受会员,请任何指导或在哪里检查

1 个答案:

答案 0 :(得分:0)

如果我对您的问题很清楚,您需要最近或将来60天的交易计数吗?

您可能需要使用自己的维度和度量替换维度和度量,但可以使用Adventure Works多维数据集完成此操作,如下所示:

WITH 

    MEMBER [Measures].[Last60Days] AS 
    SUM
    (
        [Date].[Date].CURRENTMEMBER.lag(60) : [Date].[Date].CURRENTMEMBER,
        [Measures].[Internet Sales Amount]
    )

    MEMBER [Measures].[Next60Days] AS 
    SUM
    (
        [Date].[Date].CURRENTMEMBER : [Date].[Date].CURRENTMEMBER.lead(60),
        [Measures].[Internet Sales Amount]
    )

SELECT 

    {[Measures].[Last60Days], [Measures].[Next60Days]} ON 0,

    [Date].[Date].[Date] ON 1

FROM [Adventure Works]