@j3qq4h7h2v2hch4m3hk86m8vw

Как подсчитать количество непрерывных интервалов дат, заданных набором интервалов дат, в которые целиком входит заданный интервал?

Суть вопроса в следующем.
Задана таблица интервалов дат, например
Номер | ДатНач  | ДатКнц
1       01.01.15 01.02.15
2       15.01.15 15.03.15

sql-запрос должен вернуть количество непрерывных интервалов (которые можно составить из этих интервалов), в которые целиком входит заданный интервал ЗадНач-ЗадКнц
  • Вопрос задан
  • 455 просмотров
Пригласить эксперта
Ответы на вопрос 2
@repeat
SELECT COUNT(*) FROM table WHERE заднач >= датнач AND задкнц <= даткнц
Ответ написан
Комментировать
@j3qq4h7h2v2hch4m3hk86m8vw Автор вопроса
Попробую уточнить вопрос, для того же самого примера
Номер | ДатНач  | ДатКнц
1       01.01.15 01.02.15
2       15.01.15 15.03.15

возьмем, например, ЗадНач = 10.01.15 и ЗадКнц = 15.02.15. Запрос должен вернуть количество 1.
ЗадНач-ЗадКнц не входит полностью ни в один диапазон из таблицы, зато если наложить все диапазоны из таблицы друг на друга (в данном случае два) то получится один непрерывный, в который ЗадНач-ЗадКнц входит полностью.
Если, например, ЗадНач = 10.01.15 и ЗадКнц = 16.03.15, то запрос вернет 0.
А если, например, ЗадНач = 15.01.15 и ЗадКнц = 30.01.15, то запрос вернет 2, так как целиком входит в оба диапазона из таблицы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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