【发布时间】:2018-01-09 16:48:11
【问题描述】:
我正在尝试编写一个语句,该语句将返回一年和两年前上周六的可比较日期。因此,如果上周六是 2018-01-06,我需要它返回 2017-01-07 和 2016-01-09。下面的代码返回 2017-01-07(正确)和 2016-01-02(不正确)。
见以下代码:
StrToMember("[Sales Period].[Sales Period].[Week Desc].&
[" + Format(DateAdd("d",
- DatePart("w", DateAdd("yyyy", -2, Now()), 1),
DateAdd("yyyy", -2, Now())),
"yyyy-MM-ddT00:00:00") +
"]")
--returns 2017-01-07
StrToMember("[Sales Period].[Sales Period].[Week Desc].&
[" + Format(DateAdd("d",
- DatePart("w", DateAdd("yyyy", -2, Now()), 1)-7,
DateAdd("yyyy", -2, Now())),
"yyyy-MM-ddT00:00:00") +
"]")
-- returns 2016-01-02
有什么问题出在哪里的想法吗?我觉得我在这里做得过火了。
谢谢。
【问题讨论】:
-
您如何定义可比较的星期六?是基于计数,所以您想要往年的第一个星期六?
-
这个问题实际上让我意识到出了什么问题。我们将其定义为上周六前 52 周的周六。所以去年是 52 周前,而前一年是 104 周前。实施后,它就可以工作了!感谢您的意见!