Имя: Пароль:
1C
 
Запрос по курсам валют
0 Анцеранана
 
06.02.15
12:48
Люди помогите с простым запросом, если можно. Нужно получить курс определенной валюты на конец каждого месяца:

31.01.2015 66,3344
28.02.2015 77,2115
31.03.2015 93,1444
30.04.2015 49,9984

что-то типа такой таблички.
1 KulakoffAlex
 
06.02.15
12:58
Сделай сначала временную таблицу в которую положишь список нужных тебе дат. Потом по этой табличке соединение с твоими данными по валютам.
2 НастоящееИмя
 
06.02.15
13:08
(1) Что то как-то, муторно, по моему
3 salvator
 
06.02.15
13:12
(0)

ВЫБРАТЬ РАЗЛИЧНЫЕ
    КОНЕЦПЕРИОДА(КурсыВалют.Период, МЕСЯЦ) КАК ПериодМесяц
ПОМЕСТИТЬ ТабПериоды
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабПериоды.ПериодМесяц КАК ПериодМесяц,
    КурсыВалют.Период,
    КурсыВалют.Валюта,
    КурсыВалют.Курс,
    КурсыВалют.Кратность
ИЗ
    ТабПериоды КАК ТабПериоды
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО (НАЧАЛОПЕРИОДА(ТабПериоды.ПериодМесяц, ДЕНЬ) = НАЧАЛОПЕРИОДА(КурсыВалют.Период, ДЕНЬ))

УПОРЯДОЧИТЬ ПО
    ПериодМесяц
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ТабПериоды


Не всегда могут быть записи на конец месяца, но что поделать - так написано.
4 Cube
 
06.02.15
13:13
ВЫБРАТЬ
    КурсыВалют.Валюта КАК Валюта,
    КурсыВалют.Период КАК Период,
    КурсыВалют.Курс,
    КурсыВалют.Кратность
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(КурсыВалют.Период) КАК Период,
            КОНЕЦПЕРИОДА(КурсыВалют.Период, МЕСЯЦ) КАК Месяц,
            КурсыВалют.Валюта КАК Валюта
        ИЗ
            РегистрСведений.КурсыВалют КАК КурсыВалют
        ГДЕ
            КурсыВалют.Период МЕЖДУ &НачалоПериода И &КонецПериода
        
        СГРУППИРОВАТЬ ПО
            КурсыВалют.Валюта,
            КОНЕЦПЕРИОДА(КурсыВалют.Период, МЕСЯЦ)) КАК ВложенныйЗапрос
        ПО КурсыВалют.Валюта = ВложенныйЗапрос.Валюта
            И КурсыВалют.Период = ВложенныйЗапрос.Период

УПОРЯДОЧИТЬ ПО
    Валюта,
    Период
5 GROOVY
 
06.02.15
13:14
6 anatoly
 
06.02.15
13:34
(3) срез последних на каждую дату даст тебе курс на эту дату или раньше.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.