В запросе выбрать минимум из трех значений. #624166


#0 by Fedor
Есть 3 значения - a, b, c. В запросе нужно определить минимальное. Есть ли более правильный способ, чем использования конструкции "ВЫБОР"? ВЫБОР
#1 by AlStorm
сортировка, после - первые 3
#2 by Wobland
чем смущает?
#3 by AlStorm
тьфу, не так понял. Сортировка, первые 1
#4 by Лоботряс
Объединение и Максимум
#5 by Лоботряс
то есть минимум
#6 by Eugene_life
Через Выбор будет нормально, ИМХО
#7 by Ksandr
Сильно зависит от запроса и от объема данных, но склоняюсь к ВЫБОР ... КОГДА ..., т.к. агрегатные функции уступают по производительности.
#8 by Fragster
Выбор когда А1 < А2 И А1 < А3 Тогда А1 Когда А2 < А3 Тогда А2 Иначе А3 Конец Как А
#9 by Fragster
Когда А2 < А3 И А2 < А1 Тогда А2
#10 by PR
Нет.
#11 by PR
+ При условии конечно же, что значения неизвестны до выполнения запроса.
#12 by aleks-id
бред понаписали. 1. значения в ВТ в колонку Значение 2. запрос к ВТ выбрать минимум(вт.значение) из ВТ
#13 by Fedor
Да, значения заранее не известны. Понятно, спасибо.
#14 by salvator
+100
#15 by Fragster
не работает, если мы и так выбираем значения из таблицы, а потом из 3-х столбцов выбираем меньший. там быстрее ВЫБОР, чем городить огород из объединений
#16 by Ненавижу 1С
Выбор Когда А1 < А2 Тогда  Выбор  Когда А3<А1 Тогда А3  Выбор  Когда А3<А2 Тогда А3  Конец Конец Как А
#17 by Fedor
Спасибо!
#18 by Fragster
так вот почему ты ненавидишь 1с...
#19 by Ненавижу 1С
нет, не поэтому
#20 by Fragster
а зачем тогда вложенные выборы?
#21 by Ненавижу 1С
а зачем нет?
#22 by Fragster
меньше строк, красивее
#23 by Ненавижу 1С
ну красота понятее относительное, а так да - строк меньше
#24 by Fragster
кстати, нафига я написал?
#25 by Ненавижу 1С
не знаю ))
#26 by Eugene_life
а если они все одинаковы? где "<="??
#27 by Ненавижу 1С
а смысл? разницы никакой
#28 by Eugene_life
Человек же копипастит!!
#29 by Ненавижу 1С
и что?
#30 by Eugene_life
ничего
#31 by aleks-id
да ну нафиг
#32 by Ksandr
Кстати, можно исходя из того, что, чтобы найти меньшее из двух необходимо от полусуммы отнять полуразницу по модулю: тогда для 2 ((a+b) - abs((a-b)))/2 для трех: (((a+b) - abs((a-b)))/2 + с)/2 - abs(((a+b) - abs((a-b)))/2 - c)/2 вот только ABS в запросах не заюзаешь, а так вполне себе решение :)
#33 by Ksandr
Скобок многовато, уменьшил: (a + b - abs(a-b))/4 + c/2 - abs((a + b - abs(a-b))/4 - c/2)
#34 by Shurjk
группировать не предлагали?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С