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

FastCode 1535 13 21 67

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

Автор: ildarovich

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

См. также

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

ОбновитьКурсВалюты (БСП)

Загрузка курсов валют с сайта РБК

ПолучитьКурсВалюты (БСП)

ЗаполнитьДанныеКурсаДляВалюты (БСП)

ПересчитатьПоКурсу (БСП)

ЗапланироватьКопированиеКурсовВалюты (БСП)

КурсыАктуальны (БСП)

Модератору