@andrenos

Как вывести список?

-- Справочник сотрудников
create table Employee (
ID int not null primary key,
Code varchar(10) not null unique,
Name varchar(255))
insert into Employee (ID, Code, Name)
values (1, 'E01', 'Ivanov Ivan Ivanovich'),
(2, 'E02', 'Petrov Petr Petrovich'),
(3, 'E03', 'Sidorov Sidr Sidorovich')
-- Отпуска сотрудников
create table Vacation (
ID int not null identity(1, 1) primary key,
ID_Employee int not null references Employee(ID),
DateBegin date not null,
DateEnd date not null)
insert into Vacation (ID_Employee, DateBegin, DateEnd)
values (1, '2019-08-10', '2019-09-01')
,(3, '2019-07-29', '2020-01-14')
,(2, '2019-05-01', '2019-05-15')

Нужно вывести список сотрудников, которые были в отпуске в один момент времени. Т.е. если один в отпуске с 01.07 по 15.07, а другой с 08.07 по 23.07. Нужно вывести одну строку с именами обоих сотрудников.
  • Вопрос задан
  • 368 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Делаете JOIN таблицы с ней же. Условие перекрытие интервалов:
begin1 <= end2 AND begin2 <= end1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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