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

Вопрос!!! По запросу

Добавлено: 03 фев 2005, 13:31
Василий
Проблема!
Есть запрос:
(Сумма по столбцу одной таблицы) - (Сумма по столбцу второй таблицы)

Если какая-либо из сумм возвращает Null, то результат этого запроса тоже Null.
А надо результат вычитания! Как это обойти?

Добавлено: 03 фев 2005, 16:51
kdv
нет такой проблемы.
или не используй null, или конвертируй null через coalesce. coalesce есть только в FB 1.5 и IB 7.5.
или в where пиши условие столбцам на is not null.

Добавлено: 03 фев 2005, 17:04
Merlin
kdv писал(а):нет такой проблемы.
или не используй null, или конвертируй null через coalesce. coalesce есть только в FB 1.5 и IB 7.5.
или в where пиши условие столбцам на is not null.
Дим, в SUM у него нулл может быть только если это Left или Full Join. И тут уж не использовать его ну никак не получится. И Where тоже не поможет, Having только, но тогда смысл Left пропадёт. Так что остаются только функции нуллозамещения. В старину по-моему какой-то удфкой для этого пользовались.

ЗЫ А ты чо сегодня такой сурьёзный? Тут ведь очень смешно было :)

Добавлено: 03 фев 2005, 17:10
Дмитрий
В старину по-моему какой-то удфкой для этого пользовались
В библиотеке rFunc такая есть. называется.
Если параметр имеет значение NULL, то 0. Во всех остальных случаях возвращается то, что передается.

Добавлено: 03 фев 2005, 18:35
kdv
это у меня смех такой - хрясь, и нету пары-тройки сообщений :-) попорченные нервы вкупе с возможностью отмодерировать. :-)

UDF-ка ?

Добавлено: 03 фев 2005, 21:43
Василий
И где взять эту UDF-ку "rFunc"

Добавлено: 03 фев 2005, 22:11
sag
И где взять эту UDF-ку "rFunc"
Не поверишь! www.ibase.ru->поиск->rfunc
Тут ведь очень смешно было
Я не нашел:(
Это DK уже успел отмодерить (отхрясить) весь юмор?
в SUM у него нулл может быть только если это Left или Full Join. И тут уж не использовать его ну никак не получится. И Where тоже не поможет, Having только, но тогда смысл Left пропадёт.
Савсем я плохой стал. Ничонипонял. :) Ну а если и не Left и не Full, а where 1=2?

Добавлено: 04 фев 2005, 09:39
Дмитрий
И где взять эту UDF-ку "rFunc"
http://rfunc.sourceforge.net/rus/

Добавлено: 04 фев 2005, 13:31
Merlin
sag писал(а): Это DK уже успел отмодерить (отхрясить) весь юмор?

Успел :( Тут от нуллов советовали избавляться кастом в numeric (15,2) :-D
sag писал(а): я плохой стал. Ничонипонял. :) Ну а если и не Left и не Full, а where 1=2?
А тогда нулл будет не только в сумах. И eof=true :) На самом деле я не очень внятно бухтел. Просто OUTER, любая разновидность. SUM пропускает нуллы, поэтому если INNER или просто запрос по одной таблице возвращает NULL в SUM, то это значит, что он вообще ничего не возвращает. Или крайний случай - ВСЕ записи, попадающие в SUM содержат нулл в этом поле.

Добавлено: 04 фев 2005, 14:11
kdv
ничего не трогал. я чужие посты редактирую очень редко. например если приводят здоровенный код, а причина проблемы вовсе не в коде. Тогда просто чтобы уменьшить объем текста, чикаю. но последний раз "чикал" недели две назад.