Страница 1 из 1

Проблема с null

Добавлено: 25 апр 2005, 16:04
Bagdat
select sum(a.summa)+sum(b.summa) from...
Если одна из сумм =null, то возвращает сумму двух сум как null.
Короче x+null=null как избежать, подкажите плиз.
Заранее спасибо!

Добавлено: 25 апр 2005, 16:13
_so_
Для IB использую спец UDF типа AsDouble
select AsDouble(sum(a.summa))+AsDouble(sum(b.summa)) from...

Добавлено: 25 апр 2005, 16:36
Bagdat
Попробывал неполучается говорит что не знает AsDouble. Может потому что у меня Firebird

Добавлено: 25 апр 2005, 16:44
_so_
Такую UDF написать нужно например:
DECLARE EXTERNAL FUNCTION ASDOUBLE
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'AsDouble' MODULE_NAME '<Твоя dll>';

function AsDouble(var Value: double): double;
begin
Result := Value;
end;

Re: Проблема с null

Добавлено: 25 апр 2005, 17:02
OX
Bagdat писал(а):select sum(a.summa)+sum(b.summa) from...
Если одна из сумм =null, то возвращает сумму двух сум как null.
Короче x+null=null как избежать, подкажите плиз.
Заранее спасибо!
Получи
select coalesce(sum(a.summa), 0)+coalesce(sum(b.summa), 0) from...
пока kdv не пришел и в Firebird_v1.5.ReleaseNotes.pdf тебя не отправил :D

Добавлено: 26 апр 2005, 10:10
Bagdat
Спасибо! Все поличилось!!!