Имя: Пароль:
1C
1С v8
Выбор или иначе
0 strruslan
 
04.03.16
12:28
Прошу помощи вот в чем...

ВЫБРАТЬ
ВЫБОР
КОГДА (большие вычисления) = 1
ТОГДА "-"
ИНАЧЕ (большие вычисления) КОНЕЦ КАК Результат

Как бы избежать повторных вычислений? Может какую другую конструкцию можно использовать?
1 Волшебник
 
модератор
04.03.16
12:29
Используй временную таблицу
2 strruslan
 
04.03.16
12:32
врем табл не совсем подходит. хотелось бы одним запросом или максимум с подзапросом
3 ObjectRelation Model
 
04.03.16
12:33
а кто сказал, что вычисления
1. займут уйму времени
2. будут выполнены дважды
4 Волшебник
 
модератор
04.03.16
12:33
(2) сам себе злобный буратино
5 ViSo76
 
04.03.16
12:33
Оптимизатор за тебя подсуетится чтобы дважды не вычислять
6 strruslan
 
04.03.16
12:37
раз так - то хорошо хоть и выглядеть будет безобразно
7 hhhh
 
04.03.16
12:46
(6) заведи реквизит в базе если постоянно эти вычисления

ВЫБРАТЬ
ВЫБОР
КОГДА Реквизит1 = 1
ТОГДА "-"
ИНАЧЕ "+" КОНЕЦ КАК Результат
8 f_vadim
 
04.03.16
12:57
ну во вложенный запрос запихай

ВЫБРАТЬ
ВЫБОР КОГДА Результат = 1 ТОГДА
.....
КОНЕЦ
ИЗ (ВЫБРАТЬ (Большие вычисления) ИЗ ...)
9 su_mai
 
04.03.16
13:02
(2) Почему временная таблица не устраивает? Открою секрет, что при любом обращении к виртуальным таблица СУБД использует временные таблицы.
10 HardBall
 
04.03.16
14:46
(0) В 1С никак. Вложенный запрос или временная таблица?
11 ViSo76
 
04.03.16
14:52
(9) Ну ты прям америку открыл.
12 ViSo76
 
04.03.16
14:56
(10) А что не в 1С запросах это как-то решается по другому? Приведи пример конструкции SQL и в какой базеданых это можно достичь.
13 HardBall
 
04.03.16
15:10
(12) В MS SQL отменили хранимые процедуры, APPlY, нормальную работу с псевдонимами и т.п.
14 Лефмихалыч
 
04.03.16
15:11
(2) >врем табл не совсем подходит
как ты пришел к такому выводу?
15 strruslan
 
04.03.16
15:36
(14) хотелось изящного решения, но раз нет так нет. продублировал и пока вполне устраивает. всем спасибо
16 ViSo76
 
04.03.16
16:01
(13) APPLY это не SQL это надстройка на ANSI SQL