Имя: Пароль:
1C
1C 7.7
v7: Case в запросах 1С 7.7 (штатных) - есть ли и как?
0 Humandra
 
24.10.12
12:35
День добрый!
Можно ли сделать на штатных запросах 7.7 что-то типа:
Case when Условие1 then БратьПоле1 else БратьПоле2 end as ПолеЗапроса
1 Джордж1
 
24.10.12
12:36
можно через функцию
2 ДенисЧ
 
24.10.12
12:38
Функция АА1 = Сумма(БББ) КОГДА (ЦЦЦ=1);
Функция АА1 = Сумма(БББ) КОГДА (ЦЦЦ=0);
3 Humandra
 
24.10.12
12:40
А с точки зрения обращения к базе тогда что получится?

Мне не надо суммировать, надо просто брать одно или другое поле (если заполнено поле, брать его, если не заполнено - другое).
Я с штатными запросами вообще не работала, не знаю их особенностей.
4 Wobland
 
24.10.12
12:41
(3) что такое заполнено?
выбор когда ХочуЭто тогда ХочуЭто
когда ХочуТо тогда ХочуТо конец
5 Джордж1
 
24.10.12
12:41
(3)Если вопрос мне, то наверное не шибко быстро получится, но работоспособно
6 ДенисЧ
 
24.10.12
12:42
(3) так, как ты хочешь - только через внешнюю функцию. Но в таком случае про слово "быстродействие" придётся забыть. И выучить новое - "медленнодействие"...
7 Humandra
 
24.10.12
12:42
(4) is null или пустая ссылка ('   0   ' в базе)
8 Wobland
 
24.10.12
12:42
ЕСТЬNULL(ХочуЭто, ХочуТо)
9 Humandra
 
24.10.12
12:43
(4) Я про 7.7 и запросы штатные
10 ДенисЧ
 
24.10.12
12:43
(8) ЧО?
11 Ёпрст
 
24.10.12
12:44
(0) можно

Функция АА1 = Сумма(?(<Условие>,БББ,ААА));
12 Humandra
 
24.10.12
12:44
(5), (6) Понятно. Жаль. Надеялась на чудо :)
Спасибо!
13 Humandra
 
24.10.12
12:45
(11) Хм, если немного модифицировать, можно попробовать заменить на Максимум, а не Сумма. Максимум-то хотя бы, я думаю, можно использовать...
14 Humandra
 
24.10.12
12:56
(13) После модификации 1С вылетела :) Ну и черт с ней, сделаю в результате уже.
15 Ёпрст
 
24.10.12
13:00
(13) можно и максимум и среднее
16 Ёпрст
 
24.10.12
13:00
и.. т.д
17 Ёпрст
 
24.10.12
13:01
Но проще, написать прямой запрос.. вот только case в нем лучше тоже не использовать
Закон Брукера: Даже маленькая практика стоит большой теории.