Имя: Пароль:
1C
1С v8
Как правильно сделать в запросе проверку на NULL ?
, , ,
0 Ткачев
 
04.09.12
08:21
1. СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0)) 71% (10)
2. ЕСТЬNULL(СУММА(РасходнаяНакладнаяУслуги.Сумма), 0) 29% (4)
Всего мнений: 14

Сабж
7 MatrosoV AleXXXand_R
 
04.09.12
08:30
так если что правильнее при любых раскладах

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
9 Рэйв
 
04.09.12
08:31
Иначе при нулл вылетит по ошибке

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
11 Гобсек
 
04.09.12
08:32
.

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
13 bodri
 
04.09.12
08:33
так.

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
15 ДенисЧ
 
04.09.12
08:35
Любое число + NULL == NULL
Так что

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
49 Светлый Гений
 
04.09.12
09:28
Конечно 2

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
51 spock
 
04.09.12
09:55
всех голосовавших за вариант 1 срочно на переаттестацию

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
55 SherifSP
 
04.09.12
10:09
Правильнее

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
61 fisher
 
04.09.12
10:22
(0) Сумма вернет NULL, только если во всех строках было NULL, т.к. по дефолту NULL при агрегации игнорируется. Т.е. по результату оба варианты равнозначны. Но вообще, если не ошибаюсь, в сиквеле это поведение можно менять. Так что теоретически второй вариант однозначнее. На практике же - монопенисуально.

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))
65 rs_trade
 
04.09.12
10:57
очевидно же что первый вариант будет 0 давать если будет хоть один нулл

СУММА(ЕСТЬNULL(РасходнаяНакладнаяУслуги.Сумма, 0))