Помогите с запросом. Можно ли решить задачу именно запросом

1. progersan 6 30.01.20 15:33 Сейчас в теме
Всем привет!

Кто может подсказать, возможно ли решить задачу запросом.
Есть задача: Получить минимальный и максимальный Пробег Автомобиля (Клиента).
Есть документы типа Заказ-наряд в них записаны пробеги в поле Пробег., в них есть Контрагент.
Документов много , в каждом может быть разный пробег или может вовсе быть "0" или NULL.
Можно ли получить средствами запроса таблицу которая выдаст такое
Контрагент / Пробег минимальный / Пробег максимальный.

Документ не нужен в такой таблице - само собой :)

Я пробовал разные варианты, но не уверен что действую правильно.
p.s. не сильно большой опыт в построении сложных запросов
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. Xershi 1484 30.01.20 16:42 Сейчас в теме
(1) запрос элементарный. Получаешь выборку контрагент - пробег.
Далее помещаешь в ВТ и группируешь 1. Контрагент, 2. Пробег с группировкой минимум, 3 Пробег с группировкой максимум.
PhoenixAOD; +1 Ответить
18. PLAstic 295 31.01.20 11:57 Сейчас в теме
(1) В Документе NULL быть не может. Если вы такое встретили, то это следствие некорректных объединений двух таблиц в запросе.
2. mifka186 8 30.01.20 15:40 Сейчас в теме
Запрос для примера приведи, хотя бы упрощенно. А так не вижу ничего сложного, все делается на закладке группировка Конструктора запроса. Контрагент - поле групповое, Мин макс пробег - вычисляемые.
PhoenixAOD; JaneP; +2 Ответить
3. JaneP 14 30.01.20 15:43 Сейчас в теме
Собственно весь вопрос только в том, что из наряд-заказа надо 2 раза поле Пробег вытащить. И к одному применить функцию максимум, а к другому минимум.
4. progersan 6 30.01.20 15:48 Сейчас в теме
(3) перефразировано отлично, только вот как именно применить паяльник пока не знаю
6. JaneP 14 30.01.20 15:51 Сейчас в теме
(4) на поле группировка конструктора запросов загляните, там вроде все интуитивно понятно. Контрагента - в верхнее поле, 2 пробега в нижнее. Рядом с пробегами функция, по умолчанию стоит сумма. Вам надо в одном случае минимум сделать, в другом максимум
8. progersan 6 30.01.20 16:06 Сейчас в теме
(6) спасибо, но как можно одно поле 2 раза перетащить "в нижнее" ?
Получилось только один раз. Наверное у меня мышь сломана, как заметил комментатор выше
9. JaneP 14 30.01.20 16:09 Сейчас в теме
(8) его для начала надо 2 раза выбрать на закладке "таблицы и поля". В запросе это будут 2 разных поля
10. progersan 6 30.01.20 16:15 Сейчас в теме
(9) спасибо, но уже сам усмел просто руками дописать это же в запросе. Но... пока жду формирования отчета уже несколько минут. Возможно не дождусь.
На самом деле вся сложность заключалась еще в одном условии:
я пытался сделать мегазапрос с использованием отбора по ТЧ документа
и это сильно усложняет вопрос
5. VmvLer 30.01.20 15:51 Сейчас в теме
я думаю все еще проще
автору необходимо открыть конструктор запроса и сделать пару кликов, возможно у него сломана мышь и он не может открыть конструткор.

подозреваю, что пробег можно выбрать не из документа, а из движений документов
7. progersan 6 30.01.20 16:05 Сейчас в теме
(5) в регистры не записывается, уже проверил. Пробою поводить сломанной мышью пока..
Источник данных только Документ ЗаказНаряд.Пробег
11. soft_wind 30.01.20 16:22 Сейчас в теме
попробуйте такой вариант

Выбрать
Док.Контрагент,
Минимум(Док.Пробег) как ПробегМин,
Максимум(Док.Пробег) как ПробегМакс
Из
Документ ЗаказНаряд Док
Где
Не Док.ПометкаУдаления //какой-то отбор по документам, можно за период добавить
Сгруппировать по
Док.Контрагент
Упорядочить по
Док.Контрагент
Автоупорядочивание
Показать
12. progersan 6 30.01.20 16:38 Сейчас в теме
(11) спасибо . у меня тоже получилось очень похожее когда я упростил запрос до минимума. Этот вариант будет работать.
Но я немного неправильно изначально поставил вопрос: я вообще пытался отфильтровать ТЧ документа по условию а на выходе получить вот то, что вы написали :)
Кстати, с помощью Условия Пробег>0 можно исключить из Максимум (Док.Пробег) нулевые значения или по-другому?
Как бы нужно вообще исключить "0" если он есть
15. Xershi 1484 30.01.20 16:43 Сейчас в теме
(12) рекомендую пройти курс по запросам Кузнецова на ютуб бесплатно. Чтобы не задавать настолько простые вопросы! Плюс научитесь пользоваться консолью запросов. 95% вопросов сможете сами решить.
PhoenixAOD; JaneP; acanta; +3 Ответить
16. progersan 6 30.01.20 16:47 Сейчас в теме
(15) спасибо, изучаю всё что нахожу
17. PhoenixAOD 62 31.01.20 02:17 Сейчас в теме
(16)все же посмотри что рекомендуют в (15) а вообще для чисел используется ЕстьNull(Док.Пробег, 0) тогда у тебя null будет 0
19. PLAstic 295 31.01.20 11:59 Сейчас в теме
(11) Внутрь функции МИНИМУМ надо вставить ВЫБОР КОГДА Док.Пробег = 0 ТОГДА 999999 ИНАЧЕ Док.Пробег КОНЕЦ)
Чтобы нули не учитывались. Как я понял, нужны ненулевые значения.
progersan; +1 Ответить
22. AlexO 135 01.02.20 13:32 Сейчас в теме
(19)а что "нулевые" пробеги в таком случае - становятся максимальными: это вы учли?
Подобный отбор с условием нужно делать во вложенном (предварительном) запросе (и передавать точно ненулевые данные дальше для анализа на мин и макс), либо городить сложный отбор (и то навряд ли такой получится).
20. AlexO 135 01.02.20 12:43 Сейчас в теме
(11)
Минимум(Док.Пробег) как ПробегМин,
Максимум(Док.Пробег) как ПробегМакс
Из
Документ ЗаказНаряд Док
И получите минимум и максимум не по какому-то авто конкретному, а по всем документам.
Весь цимус - это четко выделить нужные документы по конкретным условиям (авто, контрагент, период , etc), выбрать их, и уже среди этой выборки найти минимум и максимум по авто и контрагенту. А т.к. как обработки "окон" в 1Совых запросах нет и не предвидится (как в SQL), нужно много плясать со встроенными запросами и обработкой результата, причем исключительно на конкретных данных конкретной базы.
14. soft_wind 30.01.20 16:43 Сейчас в теме
да, все правильно, в зону Где вставляте, любые/нужные условия отбора,
про табличную часть документа вы вообще ни чего не писали, но к ней так-же можно обращаться и добавлять условия.
21. AlexO 135 01.02.20 12:46 Сейчас в теме
(14)
про табличную часть документа вы вообще ни чего не писали
Ну это еще смешней, если дополнительно сначала нужно еще и среди ТЧ одного дока - выбрать мин и макс, а потом их же сравнивать уже с другими мин и макс других доков по данному авто ))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот