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

FastCode 1374 11 21 66

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

Автор: ildarovich

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

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

Рекомендации

См. также

ПредставлениеДатыСинхронизации (БСП)

ПредставлениеЛокальнойДатыСоСмещением (БСП)

ОтносительнаяДатаСинхронизации (БСП)

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

УстановитьУсловноеОформлениеПоляДата (БСП)

Цены на дату документа продажи

ИнтервалВремениСтрокой (БСП)

TurboConf - расширение Конфигуратора 1С

Комментарии

Модератору