Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.026 c
14-84683
Vlad Oshin
2003-06-10 15:58
2003.06.26
А никто не вылавливал данные из миниАТС?


1-84226
Artemij
2003-06-11 13:04
2003.06.26
Как получить значение выделенной строки в ListBox?


14-84654
MalkoLinge
2003-06-06 11:01
2003.06.26
Типа история


4-84849
Xeon
2003-04-27 08:26
2003.06.26
Запуск просторонних приложений.


14-84616
Cobalt
2003-06-07 00:48
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский