Версия для печати темы (https://pro1c.org.ua/index.php?s=04210ef11884be1ade01200a141ec6d2&showtopic=52749)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Отбор по максимальному значению в результате запроса

Автор: Constantus 27.06.19, 16:49

Приветствую, Форумчане!
1с.8.3.6, самопис, БСП, УФ

Имеется результат некоего запроса:

Вася_3
Вася_2
Вася_1

Петя_4
Галя_3
Олег_4
Олег_1

Саша_2
Гоша_3
Гоша_2


Как видно, есть имена с одной позицией, а есть имена с несколькими позициями с разными цифрами

Требуется оставить тех, кто имеет одно значение, а те, кто имеет несколько значений, оставить с максимальной цифрой, т.е.:


Вася_3
Петя_4
Галя_3
Олег_4
Саша_2
Гоша_3

Никак не могу составить запрос на базе этого результата. Подскажите.

Автор: TrasserZero 27.06.19, 23:14

Простор для фантазии - много вариантов.. Я бы пилил как-то так: ТЗ отсортировать, создать что-то. ну к примеру еще одну ТЗ.. первую строку скопировать в новую ТЗ, затем считать до разделителя, сравнить со следующей. Если одинаково - вторую тоже скопировать в ту же ТЗ.. Если не одинаково - создаем следующую ТЗ... и так до упора. Полученные ТЗ отсортируем по убыванию, удаляем все, кроме первой строки. Получили сколько-то ТЗ из одной строки каждая.. Ну и далее по желанию..
Может не суперкрасиво, но что первое пришло на ум))

Автор: sava1 28.06.19, 7:43

Цитата(TrasserZero @ 28.06.19, 0:14) *
Простор для фантазии - много вариантов..


Сколько можно лисапетов с квадратными, треугольными и т.д. колесами построить.....

А просто сгруппировать и взять МАКСИМУМ() - не приходит на ум ?

Автор: Constantus 28.06.19, 8:51

sava1 @ Сегодня, 10:43 * ,

Была такая мысль, но задача усложнена следующим:

Вася_Явка_3
Вася_Болел_2
Вася_Прогул_1

Сгруппировать по имени и цифре и выложить по максимум можно, но вот нужно будет получить максимум с учетом Явка/Болел/Прогул
Цифры как бы символизируют приоритет отбора :-)

Подозреваю, что придется формировать временную таблицу без Явка/Болел/Прогул, выбрать максимум, а потом соединением отбор получать с полными данными

Автор: sava1 28.06.19, 9:28

Цитата(Constantus @ 28.06.19, 9:51) *
Вася_Явка_3
Вася_Болел_2
Вася_Прогул_1


что должно быть результатом?

Автор: TrasserZero 28.06.19, 15:00

Цитата(Constantus @ 28.06.19, 9:51) *
нужно будет получить максимум с учетом Явка/Болел/Прогул

вооот.. а в мой велосипед добавить еще одно прямоугольное колесико - и как ни странно - он поедет crazy.gif

Автор: Constantus 28.06.19, 18:50

Цитата(sava1 @ 28.06.19, 12:28) *
Цитата(Constantus @ 28.06.19, 9:51)
Вася_Явка_3
Вася_Болел_2
Вася_Прогул_1

что должно быть результатом?


По максимальной цифре 3

Вася_Явка_3

Автор: Vladal 01.07.19, 10:16

Цитата(Constantus @ 28.06.19, 19:50) *
что должно быть результатом?

По максимальной цифре 3

Вася_Явка_3

Надеюсь, цифры, виды явок и сотрудник в разных колонках? Или строкой? huh.gif

Из какого источника берутся данные? Это какой-то регистр или документ?

Автор: sava1 01.07.19, 10:35

Цитата(TrasserZero @ 28.06.19, 16:00) *
а в мой велосипед добавить еще одно прямоугольное колесико - и как ни странно - он поедет


для "кулл-хацкеров"


Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua