Задача похожа на сжатое представление ряда чисел, только роль чисел играют даты. Дана последовательность дат. Нужно заменить ее последовательностью непрерывных интервалов дат. Вот решение
Автор: ildarovich
ВЫБРАТЬ
Даты.Дата,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДатыДо.Дата) КАК Номер
ПОМЕСТИТЬ НомераДат
ИЗ
ВТДаты КАК Даты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДаты КАК ДатыДо
ПО (ДатыДо.Дата < = Даты.Дата)
СГРУППИРОВАТЬ ПО
Даты.Дата
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МИНИМУМ(НомераДат.Дата) КАК ДатаНач,
МАКСИМУМ(НомераДат.Дата) КАК ДатаКон
ИЗ
НомераДат КАК НомераДат
СГРУППИРОВАТЬ ПО
ДОБАВИТЬКДАТЕ(НомераДат.Дата, ДЕНЬ, -НомераДат.Номер)
{2} Ожидается идентификатор
ПредставлениеДатыСинхронизации (БСП)
ПредставлениеЛокальнойДатыСоСмещением (БСП)
ОтносительнаяДатаСинхронизации (БСП)
Добавить к дате и разность дат
УстановитьУсловноеОформлениеПоляДата (БСП)