Сжатое представление последовательности дат запросом

FastCode 63 8

Задача похожа на сжатое представление ряда чисел, только роль чисел играют даты. Дана последовательность дат. Нужно заменить ее последовательностью непрерывных интервалов дат. Вот решение

Автор: ildarovich

ВЫБРАТЬ 
    Даты.Дата, 
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДатыДо.Дата) КАК Номер 
ПОМЕСТИТЬ НомераДат 
ИЗ 
    ВТДаты КАК Даты 
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДаты КАК ДатыДо 
        ПО (ДатыДо.Дата < = Даты.Дата) 
СГРУППИРОВАТЬ ПО 
    Даты.Дата 
; 

//////////////////////////////////////////////////////////////////////////////// 
ВЫБРАТЬ 
    МИНИМУМ(НомераДат.Дата) КАК ДатаНач, 
    МАКСИМУМ(НомераДат.Дата) КАК ДатаКон 
ИЗ 
    НомераДат КАК НомераДат 
СГРУППИРОВАТЬ ПО 
    ДОБАВИТЬКДАТЕ(НомераДат.Дата, ДЕНЬ, -НомераДат.Номер)
{2} Ожидается идентификатор
FastCode Professional - быстрый поиск кода 1С

Похожие публикации

Добавить к дате и разность дат

Модератору