Как выбрать данные, используя взаимоисключающие операторы where - PullRequest
0 голосов
/ 17 января 2019

Я хочу выполнить оператор выбора на основе условия, изменить условие where, которые являются взаимоисключающими

Я хочу получить данные из таблицы на основе даты. Если текущая дата 16-го, то мне нужны данные для дат 1-12 текущего месяца, а если 4-го, то мне нужны данные за весь предыдущий месяц. Я не понимаю, как использовать, если или когда с этим. Как добавить условие, на основании которого я мог бы выполнить одно из утверждений Я пытаюсь автоматизировать отчет, который будет запускаться 16-го и 4-го числа каждого месяца, и данные, которые будут добавлены в отчет, будут такими же, как описано выше. Я использую базу данных оракула

1 Ответ

0 голосов
/ 17 января 2019

Логика будет выглядеть так с использованием синтаксиса ANSI / ISO:

where (extract(day from current_date) = 16 and
       extract(month from datecol) = extract(month from current_date) and extract(year from datecol) = extract(year from current_date)
      ) or
      (extract(day from current_date) = 4 and
       extract(month from datecol) = extract(month from current_date - interval '1 month') and extract(year from datecol) = extract(year from current_date - interval '1 month')
      )

Конечно, функции даты различаются в зависимости от базы данных, поэтому может потребоваться адаптация к вашей конкретной базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...