首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSAS去年MTD计算不规则Calnedar

SSAS去年MTD计算不规则Calnedar
EN

Stack Overflow用户
提问于 2015-09-03 22:49:17
回答 1查看 702关注 0票数 0

我有一个销售日历,一个月的日历每年都会改变。例如,2015年9月被定义为9月1日-9月30日,但去年它的运行时间是9月3日-9月30日。

因此,当我想要比较今年9/1/2015的MTD时,应该将其与2014/9/3进行比较。我有时间维度中的所有日期,比如上次MTD开始和上次MTD结束,并将它们放在一个层次结构中,最后一次MTD开始和上次MTD结束的日期,以及尝试的祖先函数,例如

代码语言:javascript
复制
WITH 
 MEMBER [Measures].LMTD AS 
    SUM(
       ANCESTOR(
         [Time].[LYMD_START].CURRENTMEMBER
        ,1
       )
      ,[Measures].[Volume]
    )
SELECT 
  [Measures].LMTD on 0
FROM  [myCUBE]
WHERE [Time].[DATE].&[2015-09-01T00:00:00];

但我只能拿回当月的合计成交量。

EN

回答 1

Stack Overflow用户

发布于 2015-09-05 19:40:42

假设您有一个包含日期、销售月份和销售年的维度,则以下内容应该有效。如果筛选到2015-09-01 (这是第9个销售月的第一天),这将后退一个销售年度,然后找到第9个销售月的第一天(2014-09-03):

代码语言:javascript
复制
ParallelPeriod(
    [Date].[Sales Calendar].[Sales Year], 
    1, 
    [Date].[Sales Calendar].CurrentMember
   )

然后,您需要将该销售月到2014-09-03的天数相加:

代码语言:javascript
复制
Sum(
  PeriodsToDate(
    [Date].[Sales Calendar].[Sales Month],
    ParallelPeriod(
        [Date].[Sales Calendar].[Sales Year], 
        1, 
        [Date].[Sales Calendar].CurrentMember
       )
    ),
  [Measures].[Volume]
 )

因此,艰难的工作是用正确的销售月份来构建维度。MDX可以导航该层次结构。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32378943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档