|
как в запросе отобрать максимальные значения? | ☑ | ||
---|---|---|---|---|
0
Александр111
12.02.20
✎
13:31
|
Есть документы поступления номенклатуры
Необходимо за указанный период получить для заданного набора номенклатуры максимальные цены и ссылки на документы поступления Запрос вида "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Ссылка КАК Документ, | ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, | МАКСИМУМ(ПоступлениеТоваровУслугТовары.Цена) КАК Цена |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка.Дата >= &ДатаНачала | И ПоступлениеТоваровУслугТовары.Ссылка.Дата <= &ДатаОкончания | И ПоступлениеТоваровУслугТовары.Ссылка.Проведен = &Проведен | И НЕ ПоступлениеТоваровУслугТовары.Ссылка.НомерВходящегоДокумента ЕСТЬ NULL | И НЕ ПоступлениеТоваровУслугТовары.Ссылка.ДатаВходящегоДокумента ЕСТЬ NULL | И ПоступлениеТоваровУслугТовары.Номенклатура В(&Список) |СГРУППИРОВАТЬ ПО | ПоступлениеТоваровУслугТовары.Номенклатура, | ПоступлениеТоваровУслугТовары.Ссылка |УПОРЯДОЧИТЬ ПО | Номенклатура, | Цена УБЫВ"; Выдает все документы,например Поступление 0000-007598 от 28.11.2018 Соединитель СР 50-748 ФВ 692,09 Поступление 0000-005599 от 12.09.2018 Соединитель СР 50-748 ФВ 649,20 Поступление 0000-002538 от 24.05.2019 Соединитель СР50-074 ПВ 639,00 Поступление 0000-001156 от 11.03.2019 Соединитель СР50-074 ПВ 597,00 Нужно чтобы было Поступление 0000-007598 от 28.11.2018 Соединитель СР 50-748 ФВ 692,09 Поступление 0000-002538 от 24.05.2019 Соединитель СР50-074 ПВ 639,00 Как это сделать? |
|||
1
Ненавижу 1С
гуру
12.02.20
✎
13:34
|
получить сначала по каждой номенклатуре максимальные цены
потом соединить с исходной таблицей по номенклатуре и цене результат для конкретной номенклатуры может оказаться неоднозначным (несколько документов с одинаковой ценой) |
|||
2
Александр111
12.02.20
✎
13:38
|
Я могу обработать таблицу значений полученную в запросе, но что будет быстрей?
|
|||
3
Александр111
12.02.20
✎
13:40
|
может можно прикрутить
" ВЫБРАТЬ первые 1 |
|||
4
RomanYS
12.02.20
✎
13:43
|
(3) Теоретически можно. "Коррелированный запрос"
|
|||
5
Александр111
12.02.20
✎
13:54
|
(3) Теоретически можно. "Коррелированный запрос" - не понятно.
|
|||
6
RomanYS
12.02.20
✎
13:59
|
||||
7
Александр111
12.02.20
✎
14:01
|
из http://www.gilev.ru/выбрать-в-запросе-одну-запись-из-неско/
При использовании коррелированных запросов нельзя забывать о подводных камнях этого механизма, в частности о том, что он может служить причиной падения производительности запроса. |
|||
8
RomanYS
12.02.20
✎
14:05
|
(7) поэтому "теоретически". Если ты не тиражку пишешь, то скорей всего это будет норм вариант.
|
|||
9
Александр111
12.02.20
✎
14:19
|
сделал так
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала)); Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания)); Запрос.УстановитьПараметр("Проведен", Истина); Запрос.УстановитьПараметр("Список", Список); Таблица20=Запрос.Выполнить().Выгрузить(); Таблица20.Колонки.Добавить("Отбор"); Ном=Справочники.Номенклатура.ПустаяСсылка(); Для каждого КД20 из Таблица20 цикл Если КД20.Номенклатура<>Ном тогда КД20.Отбор=1; ном=КД20.Номенклатура; КонецЕсли; КонецЦикла; Отбор = Новый Структура("Отбор"); Отбор.Вставить("Отбор",1 ); ТабОтбор=Таблица20.Скопировать(Отбор); |
|||
10
Greeen
12.02.20
✎
14:47
|
(9) Ловко =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |