Dev ›
Как получить предыдущую цену номенклатуры ›
#17
18.08.20 14:50
Для УНФ Текущей (на 2020.08.14) Вариант №6 с параметром - дата выборки цены и МассивНоменклатуры, чтобы брать ТОЛЬКО НУЖНЫЕ Товары + Колонка Дата Предыдущей установки цены + Дата Текущей УСТАНОВКИ ЦЕНЫ + Дата Будущей установки цены и Будущая Цена (Может быть важно для вывод информации в различных местах, что скоро цена будет новая и поэтому нужно взять по текущей!!!
Код |
---|
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена,
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПредыдущаяДата,
МАКСИМУМ(ЦеныНоменклатурыБудущие.Период) КАК БудущаяДата,
МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Период) КАК ТекущаяДата
ПОМЕСТИТЬ втЦеныНоменклатуры
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаАктуальнойЦены, ВидЦен В(&ТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ЦеныНоменклатурыСрезПоследних.Период > ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен)) )
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыБудущие
ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыБудущие.Номенклатура
И ЦеныНоменклатурыСрезПоследних.Период < ЦеныНоменклатурыБудущие.Период
И (ЦеныНоменклатурыБудущие.ВидЦен В(&ТипыЦен)) )
ГДЕ (ЦеныНоменклатурыСрезПоследних.Номенклатура В (&МассивНоменклатуры))
СГРУППИРОВАТЬ ПО
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЦеныНоменклатуры.Номенклатура,
втЦеныНоменклатуры.Цена,
ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПредыдущаяЦена,
ЕСТЬNULL(ЦеныНоменклатурыБудущие.Цена, 0) КАК БудущаяЦена,
втЦеныНоменклатуры.БудущаяДата,
втЦеныНоменклатуры.ПредыдущаяДата,
втЦеныНоменклатуры.ТекущаяДата
ИЗ
втЦеныНоменклатуры КАК втЦеныНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
И втЦеныНоменклатуры.ПредыдущаяДата = ЦеныНоменклатуры.Период
И (ЦеныНоменклатуры.ВидЦен В(&ТипыЦен))
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыБудущие
ПО втЦеныНоменклатуры.Номенклатура = ЦеныНоменклатурыБудущие.Номенклатура
И втЦеныНоменклатуры.БудущаяДата = ЦеныНоменклатурыБудущие.Период
И (ЦеныНоменклатурыБудущие.ВидЦен В(&ТипыЦен)) |