Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

Считаем баланс?   Найти похожие ветки 

 
off   (2003-05-27 06:43) [0]

Доброе утро мастера, если утро где-то бывает добрым *-) Но служба есть служба, а значит снова в бой.
Есть две таблицы ("начисления"&"оплата"), возникла необходимость подсчитать баланс и сравнить его с нулем (или некоторой суммой).
Для чего пишу следующий СиКуЛь:
... WHERE (( SELECT SUM(SUMALL FROM NACHALL) - ( SELECT SUM(PAY FROM PAYALL))>0 ...
И все, вроде бы работает, кроме случаев, когда один из селектов возвращает NULL. Тогда вся разность приравнивается к NULL.
Похоже, что всему виной неугамонный NULL, а мой вопрос можно свести к следующему как (что добавить с СиКуЛь) получить 0 вместо противного NULL


 
Zacho   (2003-05-27 06:57) [1]

C помощью UDF. Написать самому или посмотреть на www.ibase.ru, там были такие UDF.
P.S. В Yaffil и FB1.5 можно и без UDF.


 
Alexandr   (2003-05-27 07:11) [2]

UDF называется z
находится она в rfunc
и заменяет она null на 0


 
off   (2003-05-27 07:40) [3]

А не может так получиться, что дело совсем не в NULL, а в кривом СиКуЛе?

> Zacho © (27.05.03 06:57)


> P.S. В Yaffil и FB1.5 можно и без UDF.

Простите а можно подробнее как без UDF?


 
Zacho   (2003-05-27 08:25) [4]


> off © (27.05.03 07:40)
> А не может так получиться, что дело совсем не в NULL, а
> в кривом СиКуЛе?

Смотря что считать "кривым". А вообще любая арифметическая операция с null даст в результате null

> Простите а можно подробнее как без UDF?

В Yaffil - с помощью функции IIF.
В FB - что-то типа CASE, COALESCE точно не помню, смотри документацию по FB


 
Zacho   (2003-05-27 08:36) [5]

Добавлю насчет "кривости".
Если в полях, по котрым считаются суммы, может быть NULL - то это в подавляющем большинстве случаев кривость разработки структуры БД. Лучше делать такие поля NOT NULL DEFAULT 0 - и подобных проблем не будет.


 
off   (2003-05-30 14:01) [6]

Спасибо Zacho и Alexandr сделал через UDF, все работает, превосходно.
Да и на последок, Игорь, если буду в Новосибирске с меня пиво :-)


 
Zacho   (2003-05-30 14:08) [7]


> off © (30.05.03 14:01)

Не откажусь.. :-D


 
Alexandr   (2003-05-30 14:40) [8]

а в Омске ты не будешь?



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.029 c
14-84682
miwa
2003-06-09 15:53
2003.06.26
Поругаем винду?


4-84819
Мишган
2003-04-23 11:18
2003.06.26
Отловить запуск DOS-приложения


3-83866
Andreyki
2003-05-28 20:38
2003.06.26
Сервер БД


1-84404
zloy_dima
2003-06-09 12:06
2003.06.26
Массив


3-83867
Merlot
2003-06-02 12:47
2003.06.26
Вертуальная таблица.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский