Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
mdfv
- Сообщения: 119
- Зарегистрирован: 23 май 2006, 15:53
Сообщение
mdfv » 26 июл 2006, 11:58
Тупняк напал.
Как сложить число с null?
все переменные в процедуре numeric(18,2).
Код: Выделить всё
sum1=0;
for select summa from tablica
into :summa
do
begin
sum1=sum1+cast(summa as numeric(18,2));
suspend; /*summa*/
end
в итоге получается sum1 равно null, если одна из summa=null.
без IIF(summa is null,0,summa) тут можно обойтись?
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 26 июл 2006, 12:30
RTFM coalesce. Без функций тут обойтись не удастся.
хотя интересно, а чем "select sum(summa) from tablica" не угодил?
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 26 июл 2006, 13:45
dimitr писал(а):RTFM coalesce. Без функций тут обойтись не удастся.
хотя интересно, а чем "select sum(summa) from tablica" не угодил?
Да всё тем же. Это тоже FM, а к ним народ испытывает острую личную неприязнь.
-
mdfv
- Сообщения: 119
- Зарегистрирован: 23 май 2006, 15:53
Сообщение
mdfv » 26 июл 2006, 14:10
Спасибо. про коалу совсем забыл.
dimitr писал(а):хотя интересно, а чем "select sum(summa) from tablica" не угодил?
Это я для упрощения написал.
на самом деле тут execute statement into используется + инсерты и апдейты ,
текст описания полей и условий которого в цикле вытаскивается из другой справочной таблицы, и там может быть все что угодно.
-
Фанис
- Сообщения: 17
- Зарегистрирован: 16 июн 2005, 19:28
Сообщение
Фанис » 05 авг 2006, 16:19
mdfv писал(а):Тупняк напал.
Как сложить число с null?
все переменные в процедуре numeric(18,2).
Код: Выделить всё
sum1=0;
for select summa from tablica
into :summa
do
begin
sum1=sum1+cast(summa as numeric(18,2));
suspend; /*summa*/
end
в итоге получается sum1 равно null, если одна из summa=null.
без IIF(summa is null,0,summa) тут можно обойтись?
for select summa from tablica where summa is not null
into :summa