выборочный запрос с датами - PullRequest
1 голос
/ 17 апреля 2020

У меня есть таблица с 2 столбцами даты. Start_date и end_date. Я пытаюсь получить данные, где дата покрыта или внутри от start_date и end_Date. Я пока не знаю, как создать запрос.

Employee leaves table

Мне нужно получить emp_id, у которого отпуск 9 и 10 апреля. Кто-то, пожалуйста, помогите! Thankss!

1 Ответ

0 голосов
/ 17 апреля 2020

Если вы ищете один отпуск, то:

select l.*
from leaves l
where l.leave_start_date <= date '2020-04-10' and
      l.leave_end_date >= date '2020-04-09';

Это работает для диапазона дат, при условии, что один отпуск покрывает их.

Если у вас есть разные даты, используйте совокупность:

select l.emp_id
from leaves l
group by l.emp_id
having sum(case when date '2020-04-09' between l.leave_start_date and l.leave_end_date then 1 else 0 end) > 0 and
       sum(case when date '2020-04-10' between l.leave_start_date and l.leave_end_date then 1 else 0 end) > 0 ;
...