prostranstvovremya
@prostranstvovremya

Как вывести новые данные из БД, перекрывая старые?

На скриншоте заджойнены две таблицы: программы работы и сессии в них. Я добавил новую программу работы на 7 строке, она своим временным интервалом перекрывает две сессии с id4 и id5. Мне нужно вывести все строки, КРОМЕ ТЕХ, которые перекрыты новой программной работой с временным интервалом, то есть все без id4 id5.
Я написал такой запрос:
SELECT * 
FROM testtask.dbo.Work_programs wp LEFT JOIN testtask.dbo.Sessions s on wp.pr_num = s.pr_num
WHERE (s.session_begin BETWEEN wp.pr_begin AND wp.pr_end) 
      AND (s.session_end BETWEEN wp.pr_begin AND wp.pr_end)

Но мое условие не перекрывает id4/5, а 7 строка с новой программой работы и не отображается.
spoiler
62bc9fa4ba132029591769.jpeg
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Если убрать лишнюю информацию, то, может я ошибаюсь, вам нужно выполнить три несвязанных между собой условия. Тогда для каждого из них делайте отдельное связывание.
Последний раз это демонстрировалось в q1167896.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы