|
В запросе выбрать минимум из трех значений. | ☑ | ||
---|---|---|---|---|
0
Fedor
08.08.12
✎
14:17
|
Есть 3 значения - a, b, c. В запросе нужно определить минимальное.
Есть ли более правильный способ, чем использования конструкции "ВЫБОР"? ВЫБОР КОГДА <Выражение> ТОГДА <Выражение> ИНАЧЕ <Выражение> КОНЕЦ |
|||
1
AlStorm
08.08.12
✎
14:17
|
сортировка, после - первые 3
|
|||
2
Wobland
08.08.12
✎
14:17
|
(0) чем смущает?
|
|||
3
AlStorm
08.08.12
✎
14:18
|
тьфу, не так понял.
Сортировка, первые 1 |
|||
4
Лоботряс
08.08.12
✎
14:18
|
Объединение и Максимум
|
|||
5
Лоботряс
08.08.12
✎
14:19
|
то есть минимум
|
|||
6
Eugene_life
08.08.12
✎
14:20
|
(0) Через Выбор будет нормально, ИМХО
|
|||
7
Ksandr
08.08.12
✎
14:29
|
Сильно зависит от запроса и от объема данных, но склоняюсь к ВЫБОР ... КОГДА ...,
т.к. агрегатные функции уступают по производительности. |
|||
8
Fragster
гуру
08.08.12
✎
14:31
|
Выбор
когда А1 < А2 И А1 < А3 Тогда А1 Когда А2 < А3 Тогда А2 Иначе А3 Конец Как А |
|||
9
Fragster
гуру
08.08.12
✎
14:31
|
Когда А2 < А3 И А2 < А1 Тогда А2
|
|||
10
PR
08.08.12
✎
14:31
|
(0) Нет.
|
|||
11
PR
08.08.12
✎
14:32
|
+(10) При условии конечно же, что значения неизвестны до выполнения запроса.
|
|||
12
aleks-id
08.08.12
✎
14:34
|
бред понаписали.
1. значения в ВТ в колонку Значение 2. запрос к ВТ выбрать минимум(вт.значение) из ВТ |
|||
13
Fedor
08.08.12
✎
14:35
|
(11) Да, значения заранее не известны. Понятно, спасибо.
|
|||
14
salvator
08.08.12
✎
14:37
|
(12) +100
|
|||
15
Fragster
гуру
08.08.12
✎
14:43
|
(12) не работает, если мы и так выбираем значения из таблицы, а потом из 3-х столбцов выбираем меньший. там быстрее ВЫБОР, чем городить огород из объединений
|
|||
16
Ненавижу 1С
гуру
08.08.12
✎
14:44
|
Выбор
Когда А1 < А2 Тогда Выбор Когда А3<А1 Тогда А3 Иначе А1 Конец Иначе Выбор Когда А3<А2 Тогда А3 Иначе А2 Конец Конец Как А |
|||
17
Fedor
08.08.12
✎
14:44
|
(8) Спасибо!
|
|||
18
Fragster
гуру
08.08.12
✎
14:45
|
(16) так вот почему ты ненавидишь 1с...
|
|||
19
Ненавижу 1С
гуру
08.08.12
✎
14:48
|
(18) нет, не поэтому
|
|||
20
Fragster
гуру
08.08.12
✎
14:49
|
(19) а зачем тогда вложенные выборы?
|
|||
21
Ненавижу 1С
гуру
08.08.12
✎
14:50
|
(20) а зачем нет?
|
|||
22
Fragster
гуру
08.08.12
✎
14:50
|
(21) меньше строк, красивее
|
|||
23
Ненавижу 1С
гуру
08.08.12
✎
14:51
|
(22) ну красота понятее относительное, а так да - строк меньше
|
|||
24
Fragster
гуру
08.08.12
✎
14:53
|
кстати, нафига я (9) написал?
|
|||
25
Ненавижу 1С
гуру
08.08.12
✎
14:53
|
(24) не знаю ))
|
|||
26
Eugene_life
08.08.12
✎
14:53
|
а если они все одинаковы? где "<="??
|
|||
27
Ненавижу 1С
гуру
08.08.12
✎
14:54
|
(26) а смысл? разницы никакой
|
|||
28
Eugene_life
08.08.12
✎
14:54
|
(27) Человек же копипастит!!
|
|||
29
Ненавижу 1С
гуру
08.08.12
✎
14:55
|
(28) и что?
|
|||
30
Eugene_life
08.08.12
✎
14:57
|
(29) ничего
|
|||
31
aleks-id
08.08.12
✎
14:58
|
(15) да ну нафиг
|
|||
32
Ksandr
08.08.12
✎
15:39
|
Кстати, можно исходя из того, что, чтобы найти меньшее из двух необходимо от полусуммы отнять полуразницу по модулю:
тогда для 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
Ksandr
08.08.12
✎
15:42
|
Скобок многовато, уменьшил:
(a + b - abs(a-b))/4 + c/2 - abs((a + b - abs(a-b))/4 - c/2) |
|||
34
Shurjk
08.08.12
✎
15:44
|
группировать не предлагали?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |