|
Получить последнюю цену закупки | ☑ | ||
---|---|---|---|---|
0
LastUnion
15.02.18
✎
04:25
|
Здравствуйте, помогите пожалуйста решить такую задачку: есть регистр сведений ЦеныНоменклатурыПоставщиков, мне нужно получить последние цены на все товары. Я делаю так:
ВЫБРАТЬ ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК ЦенаЗакупки, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура ПОМЕСТИТЬ ЦЕНЫЗАКУПКИ ИЗ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК ЦеныНоменклатурыПоставщиковСрезПоследних ; Проблема в том, что строк в результате выполнения запроса с одним товаром может быть несколько, связано это с тем, как я понял, что в регистре отличаются значения измерений(таких как "Поставщик" и т.д.) В итоге я получаю что-то типа такого: НазваниеТовара 100р. НазваниеТовара 100р. НазваниеТовара 120р. Как сделать так, чтобы выбиралась только последняя цена на текущий момент, без учета остальных измерений? |
|||
1
shadow_sw
15.02.18
✎
04:27
|
На какую дату выборка? если выбирать из СрезПоследних без указания даты - ты и получаешь все что есть
|
|||
2
LastUnion
15.02.18
✎
04:32
|
На текущую дату, подставлял и текущую как параметр вирутальной таблицы, но результат не меняется
|
|||
3
LastUnion
15.02.18
✎
04:33
|
он сейчас выбирает последние цены по всем поставщикам, период тут не при чем
|
|||
4
LastUnion
15.02.18
✎
04:33
|
А мне нужно просто последнюю цену закупки без учета поставщиков
|
|||
5
shadow_sw
15.02.18
✎
04:36
|
ВЫБРАТЬ
ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК ЦенаЗакупки, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура ИЗ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(&НаДату, ) КАК ЦеныНоменклатурыПоставщиковСрезПоследних &НаДату = ТекущаяДата() |
|||
6
shadow_sw
15.02.18
✎
04:36
|
(3) сам с собой разговариваешь?:)
|
|||
7
LastUnion
15.02.18
✎
04:38
|
(5) Сейчас, попробую ещё раз, секунду (6) Новенький здесь, только узнал, что можно ссылаться на сообщения других)
|
|||
8
LastUnion
15.02.18
✎
04:43
|
(5) Все осталось как было...
В регистре получается лежит что-то типа такого: Номенклатура Цена Поставщик Дата Номенклатура1 100 ООО"Поставщик1" 01.01.2018 Номенклатура1 100 ООО"Поставщик2" 06.01.2018 Номенклатура1 100 ООО"Поставщик1" 08.01.2018 Номенклатура1 120 ООО"Поставщик2" 10.01.2018 В итоге я получаю Номенклатура1 100 Номенклатура1 120 Потому что поставщики разные.... А мне нужно получить последнюю закупочную цену: Номенклатура1 120 |
|||
9
Mankubus
15.02.18
✎
05:48
|
(8) изучай временные таблицы и выражение МАКСИМУМ
|
|||
10
Mankubus
15.02.18
✎
05:50
|
1. Получаешь все цены с периодом и номенклатурой
2. Выбираешь максимальный период по каждой номенклатуре 3. Соединяет 1 и 2, выбирая только цены с максимальным периодом |
|||
11
LastUnion
15.02.18
✎
05:59
|
(10) Сейчас попробую
|
|||
12
LastUnion
15.02.18
✎
06:05
|
(10) Сделал так как вы говорили? Ничего не изменилось
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура, | ЦеныНоменклатурыПоставщиковСрезПоследних.Период КАК Период, | ЦеныНоменклатурыПоставщиковСрезПоследних.Цена |ПОМЕСТИТЬ ВСЕЦЕНЫ |ИЗ | РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК ЦеныНоменклатурыПоставщиковСрезПоследних |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура, | МАКСИМУМ(ЦеныНоменклатурыПоставщиковСрезПоследних.Период) КАК Период |ПОМЕСТИТЬ ЦЕНЫСМАКСПЕРИОДОМ |ИЗ | РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних КАК ЦеныНоменклатурыПоставщиковСрезПоследних | |СГРУППИРОВАТЬ ПО | ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВСЕЦЕНЫ.Номенклатура, | ВСЕЦЕНЫ.Цена |ИЗ | ВСЕЦЕНЫ КАК ВСЕЦЕНЫ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦЕНЫСМАКСПЕРИОДОМ КАК ЦЕНЫСМАКСПЕРИОДОМ | ПО ВСЕЦЕНЫ.Номенклатура = ЦЕНЫСМАКСПЕРИОДОМ.Номенклатура"; |
|||
13
VladZ
15.02.18
✎
06:09
|
(12) Читай внимательно!!! "Получаешь все цены". Все!!! А не срез последних.
|
|||
14
chelentano
15.02.18
✎
06:39
|
(12) В таком случае надо работать с физической таблицей, а не с виртуальной
|
|||
15
catena
15.02.18
✎
07:13
|
(13)Интересно, и чем будет отличаться выборка всех цен по максимальному периоду от выборки цен из среза последних?
|
|||
16
catena
15.02.18
✎
07:14
|
+(15)опять же по маскимальному периоду
|
|||
17
chelentano
15.02.18
✎
07:52
|
(15) Срез последних выдает записи по всем измерениям. Надо только одну.
|
|||
18
catena
15.02.18
✎
07:59
|
(17)Покажите мне вариант записей регистра, которые дадут разный результат в выборках:
Выбрать максимум(период), измерение1 из регистрсведений Сгруппировать по измерение1 Выбрать максимум(период), измерение1 из регистрсведений.срезпоследних Сгруппировать по измерение1 |
|||
19
chelentano
15.02.18
✎
08:13
|
(18) Извиняюсь. Не так понял :)
|
|||
20
НЕА123
15.02.18
✎
08:14
|
(12)
добавь И ВСЕЦЕНЫ.Период = ЦЕНЫСМАКСПЕРИОДОМ.Период |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |