我有一个销售日历,一个月的日历每年都会改变。例如,2015年9月被定义为9月1日-9月30日,但去年它的运行时间是9月3日-9月30日。
因此,当我想要比较今年9/1/2015的MTD时,应该将其与2014/9/3进行比较。我有时间维度中的所有日期,比如上次MTD开始和上次MTD结束,并将它们放在一个层次结构中,最后一次MTD开始和上次MTD结束的日期,以及尝试的祖先函数,例如
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];但我只能拿回当月的合计成交量。
发布于 2015-09-05 19:40:42
假设您有一个包含日期、销售月份和销售年的维度,则以下内容应该有效。如果筛选到2015-09-01 (这是第9个销售月的第一天),这将后退一个销售年度,然后找到第9个销售月的第一天(2014-09-03):
ParallelPeriod(
[Date].[Sales Calendar].[Sales Year],
1,
[Date].[Sales Calendar].CurrentMember
)然后,您需要将该销售月到2014-09-03的天数相加:
Sum(
PeriodsToDate(
[Date].[Sales Calendar].[Sales Month],
ParallelPeriod(
[Date].[Sales Calendar].[Sales Year],
1,
[Date].[Sales Calendar].CurrentMember
)
),
[Measures].[Volume]
)因此,艰难的工作是用正确的销售月份来构建维度。MDX可以导航该层次结构。
https://stackoverflow.com/questions/32378943
复制相似问题