helpf.pro
Регистрация

v8: Срез последних и предпоследних, но по списку валют

ssvertov
25.12.2015 13:53Прочитано: 1445

собственной есть вариант

ВЫБРАТЬ КурсыВалютСрезПоследних.Период КАК Период, КурсыВалютСрезПоследних.Валюта КАК Валюта, КурсыВалютСрезПоследних.Курс КАК КурсПОМЕСТИТЬ ПоследнийКурсИЗ РегистрСведений.КурсыВалют КАК КурсыВалютСрезПоследнихГДЕ КурсыВалютСрезПоследних.Период <ДатаОтчета;

////////////////////////////////////////////////////////////////////////////////ВЫБРАТЬ ПЕРВЫЕ 2 КурсыВалют.Валюта, КурсыВалют.Период КАК ПредпоследнийПериод, КурсыВалют.Курс КАК ПредпоследнийКурс, ПоследнийКурс.Период КАК ПоследнийПериод, ПоследнийКурс.Курс КАК ПоследнийКурсИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ КурсыВалют.Валюта КАК Валюта, МАКСИМУМ(КурсыВалют.Период) КАК Период ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследнийКурс КАК ВложенныйЗапрос ПО КурсыВалют.Период < ВложенныйЗапрос.Период И КурсыВалют.Валюта = ВложенныйЗапрос.Валюта СГРУППИРОВАТЬ ПО КурсыВалют.Валюта) КАК ПредпоследнийПериод ПО (ПредпоследнийПериод.Валюта = КурсыВалют.Валюта) И (ПредпоследнийПериод.Период = КурсыВалют.Период) ЛЕВОЕ СОЕДИНЕНИЕ ПоследнийКурс КАК ПоследнийКурс ПО (ПоследнийКурс.Валюта = КурсыВалют.Валюта)

УПОРЯДОЧИТЬ ПО ПоследнийПериод УБЫВ

хотелось бы что бы это работало для всего списка валют

Yandex
Возможно, вас также заинтересует
Реклама на портале
IBReiter
25.12.2015 14:52Ответ № 1

Можно так

Код 1C v 8.3
 

ВЫБРАТЬ
КурсыВалютСрезПервых.Период,
КурсыВалютСрезПервых.Валюта

ПОМЕСТИТЬ ПОСЛ

ИЗ РегистрСведений.КурсыВалют.СрезПоследних(, ) КАК КурсыВалютСрезПервых
;
ВЫБРАТЬ
МАКСИМУМ(КурсыВалют.Период) КАК Период,
КурсыВалют.Валюта

ПОМЕСТИТЬ ПРЕДП

ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют

ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПОСЛ КАК ПОСЛ

ПО КурсыВалют.Период < ПОСЛ.Период И КурсыВалют.Валюта = ПОСЛ.Валюта

СГРУППИРОВАТЬ ПО КурсыВалют.Валюта

;

ВЫБРАТЬ
ПОСЛ.Период КАК Период,
ПОСЛ.Валюта КАК Валюта

ПОМЕСТИТЬ ВСЕКУРСЫ

ИЗ ПОСЛ КАК ПОСЛ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ПРЕДП.Период,
ПРЕДП.Валюта
ИЗ ПРЕДП КАК ПРЕДП

;

ВЫБРАТЬ
ВСЕКУРСЫ.Валюта КАК Валюта,
ВСЕКУРСЫ.Период КАК Период,
КурсыВалют.Курс

ИЗ ВСЕКУРСЫ КАК ВСЕКУРСЫ

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют

ПО ВСЕКУРСЫ.Период = КурсыВалют.Период И ВСЕКУРСЫ.Валюта = КурсыВалют.Валюта

УПОРЯДОЧИТЬ ПО Валюта, Период
ssvertov
25.12.2015 15:29Ответ № 2

Да - вариант красивый - но построчно разворачивает, а как бы на определенную дату и в горизонте развернуть "пред.курс  посл.курс"

IBReiter
28.12.2015 08:48Ответ № 3

Последнюю таблицу Поместить ВТ и добавить еще

Код 1C v 8.3
 

ВЫБРАТЬ
ПОСЛ.Период,
ЛЕВ.Валюта,
ЛЕВ.Курс КАК ПоследнийКурс,
ПРАВ.Курс КАК ПредпоследнийКурс


ИЗ ВТ КАК ЛЕВ


ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ПРАВ


ПО ЛЕВ.Валюта = ПРАВ.Валюта И ЛЕВ.Период < ПРАВ.Период


ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПОСЛ КАК ПОСЛ


ПО ЛЕВ.Валюта = ПОСЛ.Валюта
ssvertov
29.12.2015 00:24Ответ № 4

Да - шикарное решение: вопрос закрыт - спасибо.

ssvertov
29.12.2015 00:24Ответ № 5
Вопрос закрыт!
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.