У меня есть таблица, в которой есть два столбца StartTime и EndTime. Значения заполняются в нем, как:Как проверить, охватывает ли заданные строки весь временной диапазон
declare @tbl Table(
colA VARCHAR(50),
colS VARCHAR(50),
DATES DATE,
STARTTIME TIME,
ENDTIME TIME,
ID BIGINT NOT NULL IDENTITY(1,1)
)
INSERT INTO @tbl
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'12:45'),convert(TIME,'13:30')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'13:15'),convert(TIME,'13:45')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'13:30'),convert(TIME,'16:50')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'13:15'),convert(TIME,'13:50')
Таким образом, я хочу, чтобы проверить, является ли StartTime и Конечное время во всех строках этой таблицы охватывает весь период времени между минимальной StartTime и максимальной EndTime этой таблицы. Следовательно, из этих строк ясно, что это правда. Однако для следующего набора строк это не будет истинным из-за временного промежутка в них. Поэтому в результате я просто хочу True или False.
INSERT INTO @tbl
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'08:45'),convert(TIME,'09:15')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'11:10'),convert(TIME,'11:25')
Мне удалось выполнить все остальные задачи, и это их конечный результат. Это заключительная задача, и я совершенно не знаю, как это сделать. Любая помощь будет оценена по достоинству.
[Упаковка Интервалы Ицик Бен-Ган] (http://blogs.solidq.com/en/sqlserver/packing-intervals/) –