![]() |
|
УТ11 Установка цен номенклаутры. Как выбирать предпоследнюю запись цены | ☑ | ||
---|---|---|---|---|
0
breezee
25.05.15
✎
13:01
|
В УТ11 Во внешнем отчете нужно выбрать последнюю цену и предпоследнюю на определенную дату. Как это сделать? Как просто выбирать последнюю - понятно, но как на предпоследнюю? Вот запрос на последнюю цену(потом еще установлю условие на тип цен- пока что это не основная проблема)
ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыСрезПоследних.ВидЦены ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, Период = &Период) КАК ЦеныНоменклатурыСрезПоследних |
|||
1
Maniac
25.05.15
✎
13:02
|
замучаешся
|
|||
2
Maniac
25.05.15
✎
13:03
|
только выборкой в цикле запросом каждой позиции
|
|||
3
Maniac
25.05.15
✎
13:03
|
и не через срез последних
|
|||
4
breezee
25.05.15
✎
13:04
|
(3) Понятно, будут через объект в СКД делать, спасибо.
|
|||
5
mehfk
25.05.15
✎
13:10
|
(2) Зачем херню советуешь?
|
|||
6
breezee
25.05.15
✎
13:12
|
(5) Скажи как правильно, пожалуйста!
|
|||
7
Basilio
25.05.15
✎
13:18
|
ВЫБРАТЬ
ЦеныНоменклатуры.ВидЦены, ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.Характеристика, МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период ПОМЕСТИТЬ втПредпослПериод ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних ПО ЦеныНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ЦеныНоменклатуры.ВидЦены = ЦеныНоменклатурыСрезПоследних.ВидЦены И ЦеныНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика И ЦеныНоменклатуры.Период < ЦеныНоменклатурыСрезПоследних.Период ГДЕ ЦеныНоменклатуры.ВидЦены = &ВидЦены СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.ВидЦены, ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатуры.ВидЦены, ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.Характеристика, ЦеныНоменклатуры.Период, ЦеныНоменклатуры.Цена ИЗ втПредпослПериод КАК втПредпослПериод ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО втПредпослПериод.ВидЦены = ЦеныНоменклатуры.ВидЦены И втПредпослПериод.Номенклатура = ЦеныНоменклатуры.Номенклатура И втПредпослПериод.Характеристика = ЦеныНоменклатуры.Характеристика И втПредпослПериод.Период = ЦеныНоменклатуры.Период ГДЕ ЦеныНоменклатуры.ВидЦены = &ВидЦены |
|||
8
breezee
25.05.15
✎
13:22
|
(7) БОЛЬШУЩИЕ СПАСИБО! Сейчас разберусь как работает только)
|
|||
9
Basilio
25.05.15
✎
13:22
|
здесь правда не будет товаров, для которых предпоследней цены нет (т.е. указана цена только 1 раз). Их несложно добавить соединением со срезом последних.
|
|||
10
Cyberhawk
25.05.15
✎
13:34
|
(8) "Сейчас разберусь как работает" // в свое время начала карьеры попотел, разбираясь с такого рода запросами, поэтому немного помогу с объяснением:
1. Сначала во временную таблицу втПредпослПериод выбираем данные из соединения двух таблиц: полной (ЦеныНоменклатуры) и среза последних, но на их соединение накладываем условие: чтобы в полной таблице период был меньше, чем в периоде среза последних. И группируем все записи из полной таблицы по максимальному периоду. Тем самым получаем для каждого товара (точнее комбинации товар-видцены-характеристика) предпоследний период. 2. Ну а далее из полной таблицы ЦеныНоменклатуры выбираем значение ресурса с соединением по этому предпоследнему периоду. |
|||
11
breezee
25.05.15
✎
13:37
|
(10) БООООЛЬШУЩЕЕ СПАСИБО! Я хотел ссам спросить) ибо не понял с максимумом, у меня были идеи когда услышал задание что нужно было брать из среза последних последние значение и (тут я хотел брать последнее из среза первых, но понял ошибку), еще раз спасибо!
|
|||
12
breezee
25.05.15
✎
14:36
|
Еще раз всем спасибо! Добра Вам!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |