Вот в этой статье
http://catalog.mista.ru/public/306536/ есть пример 14 "Сжатое представление последовательности дат запросом", где показано, как отдельные даты объединить в интервал. Получается, что нужно "развернуть" все интервалы в набор дат интервала, затем сгруппировать (чтобы убрать "перекрытия"), а затем объединить запросом из примера 14.
Развернуть интервалы можно соединением с производствеенным календарем, например, или с искусственной таблицей, построенной, например, как в статье
http://catalog.mista.ru/public/90367/ .
В обсуждении
Непрерывные интервалы в запросе с нюансом в комментарии /8/ приведено решение для объединения интервалов, но оно работает только для не пересекающихся интервалов.
А вообще задача не простая. Решение (8) может не работать для случая, когда пересекаются (стыкуются) больше двух интервалов.
Для себя добавлю, что для максимальной скорости решения этой задачи (без тэта-соединений), нужно выбрать множество дней, не входящих не в какие интервалы, а затем способом из
http://catalog.mista.ru/public/402534/ найти интервалы между пропусками. Тогда будет предельно быстро.