Получение интервалов неизменности курсов валют

FastCode 63 8

Запрос по курсам валют. Как и в других подобных задачах, в этой ключ к решению - в выборе подходящего инварианта. Здесь инвариантом является количество отличающихся курсов перед данным. Запрос составлялся без оглядки на эффективность. Если данных много и эффективность важна, то можно взять метод решения из http://catalog.mista.ru/public/402534/

Автор: ildarovich

ВЫБРАТЬ
    Дано.Период,
    Дано.Валюта,
    Дано.Курс,
    КОЛИЧЕСТВО(Было.Курс) КАК Номер
ПОМЕСТИТЬ Интервалы
ИЗ
    Дано КАК Дано
        ЛЕВОЕ СОЕДИНЕНИЕ Дано КАК Было
        ПО (Было.Валюта = Дано.Валюта)
            И (Было.Период <= Дано.Период)
            И (Было.Курс <> Дано.Курс)
СГРУППИРОВАТЬ ПО
    Дано.Период,
    Дано.Валюта,
    Дано.Курс
;
ВЫБРАТЬ
    МИНИМУМ(Интервалы.Период) КАК ДатаС,
    МАКСИМУМ(Интервалы.Период) КАК ДатаПо,
    Интервалы.Валюта,
    Интервалы.Курс
ИЗ
    Интервалы КАК Интервалы
СГРУППИРОВАТЬ ПО
    Интервалы.Валюта,
    Интервалы.Курс,
    Интервалы.Номер
УПОРЯДОЧИТЬ ПО
    Интервалы.Валюта,
    ДатаС
{2} Ожидается идентификатор
FastCode Professional - быстрый поиск кода 1С

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

Получение предпоследнего курса валюты

Средневзвешенный курс валюты за указанный период

Модератору