|
Выбор минимальных значений с ресурсами запросом | ☑ | ||
---|---|---|---|---|
0
vladimir80
23.09.14
✎
13:37
|
Приветствую! Подскажите, как лучше составить запрос.
Переодический РегистрСведений со следующей структурой: Номенклатура - Поставщик - Цена Номенклатура - элемент справочника Номенклатура. Поставщик - элемент справочника с доп.реквизитом Приоритет. Необходимо выбрать все последние цены номенклатуры поставщиков, причем если номенклатура есть у различных поставщиков - то взять цену поставщика с минимальным приоритетом. |
|||
1
DirecTwiX
23.09.14
✎
13:38
|
Срез последних + группировка
|
|||
2
DirecTwiX
23.09.14
✎
13:39
|
Плюс внутреннее соединение по поставщику и номенклатуре
|
|||
3
kosts
23.09.14
✎
13:39
|
А если и приоритет одинаковый?
|
|||
4
vladimir80
23.09.14
✎
13:41
|
Срез последних - это понятно. А вот группировка - тут не могу разобраться.
Приоритет не одинаковый - поставщиков товара слишком мало. |
|||
5
kosts
23.09.14
✎
13:43
|
(4) На ввод одинаковых приоритетов стоит запрет?
|
|||
6
vladimir80
23.09.14
✎
13:44
|
(5) поставщиков 7 и ситуация не изменится. На них изначально стоит приоритет. В противном случае можно при одинаковом приоритете выбирать минимальную цену.
|
|||
7
DirecTwiX
23.09.14
✎
13:45
|
Вроде так:
|
|||
8
vladimir80
23.09.14
✎
14:00
|
(7)Спасибо, отличное решение!
Итоговый запрос: ВЫБРАТЬ ЦеныПоставщиковСрезПоследних.Номенклатура, ЦеныПоставщиковСрезПоследних.Поставщик.ПриоритетПоставщика КАК ПоставщикПриоритетПоставщика, ЦеныПоставщиковСрезПоследних.Цена ПОМЕСТИТЬ ВТ ИЗ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних ГДЕ ЦеныПоставщиковСрезПоследних.ЕстьВПрайсе = ИСТИНА ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Номенклатура, МИНИМУМ(ВТ.ПоставщикПриоритетПоставщика) КАК ПоставщикПриоритетПоставщика ПОМЕСТИТЬ ВТ2 ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Номенклатура, ВТ.ПоставщикПриоритетПоставщика, МИНИМУМ(ВТ.Цена) КАК Цена ИЗ ВТ КАК ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2 ПО ВТ.Номенклатура = ВТ2.Номенклатура И ВТ.ПоставщикПриоритетПоставщика = ВТ2.ПоставщикПриоритетПоставщика СГРУППИРОВАТЬ ПО ВТ.Номенклатура, ВТ.ПоставщикПриоритетПоставщика |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |