У меня есть два набора дат, для которых мне нужно получить данные, это TY и эквивалентные даты для LY (с разницей в 8 недель). Как это можно сделать в предложении where?
orderdate between (cast(getdate()-420 as date) and cast(getdate()-364 as date)) or (cast(getdate()-56 as date) and cast(getdate()-1 as date))
Перепробовали много вариантов, но получили неправильные синтаксические ошибки.
«Испробовали много вариантов, но получили неправильные синтаксические ошибки». и что это были за попытки? Какие ошибки вы получили?
Вы также должны поставить orderdate between
после or
...
@ Tyron78, это сработало отлично. Большое спасибо. И спасибо другим за то, что нашли время ответить
Фиксированный синтаксис:
where (orderdate between cast(getdate()-420 as date) and cast(getdate()-364 as date))
OR
(orderdate between cast(getdate()-56 as date) and cast(getdate()-1 as date))
Состояние OR
не сочетается с between
. Вы должны иметь cond1 OR cond2
следующим образом:
orderdate between (cast(getdate()-420 as date) and cast(getdate()-364 as date))
or orderdate between (cast(getdate()-56 as date) and cast(getdate()-1 as date))
Вот мой комментарий в качестве ответа: вы должны исправить синтаксис следующим образом:
orderdate between (cast(getdate()-420 as date) and cast(getdate()-364 as date))
or orderdate between (cast(getdate()-56 as date) and cast(getdate()-1 as date))
Предоставьте образцы данных и желаемые результаты.