MDX найти в субботу 2 года назад

Я пытаюсь написать заявление, в котором будут приведены сопоставимые даты последней субботы один и два года назад. Так что, если в прошлую субботу было 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

Есть идеи, где проблема? У меня такое ощущение, что я переусердствовал здесь.

Благодарю.

1 ответ

Это было решено с помощью DateAdd("ww", -52, Now())) и DateAdd("ww", -104, Now())), поскольку наше определение сопоставимой субботы основано на скользящих 52 неделях, а не на 1 год.

Другие вопросы по тегам