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

Вниз

значение NULL в ХП   Найти похожие ветки 

 
nick-from ©   (2003-10-11 12:13) [0]

Сделал такую ХП на подсчет текущего количества товара:

CREATE PROCEDURE GETGOODSQUANTITY
(
aGoodsId INTEGER
)
RETURNS
(
Result INTEGER
)
AS
DECLARE VARIABLE aGoodsArrival INTEGER;
DECLARE VARIABLE aGoodsLeaving INTEGER;
BEGIN
SELECT SUM(Ga_Quantity) FROM GoodsArrival GA WHERE GA.Ga_GoodsId = :aGoodsId INTO :aGoodsArrival;
SELECT SUM(GE_Quantity) FROM GoodsExpense GE WHERE GE.GE_GoodsId = :aGoodsId INTO :aGoodsLeaving;
RESULT = :aGoodsArrival - :aGoodsLeaving;
SUSPEND;
END;

Проблема в том, что когда товар ни разу не продавался, записей в таблице GoodsExpense для него не будет, значит и сумма по GE_Quantity будет NULL. В этом случае и результат тоже будет NULL.

Как можно избежать этого, чтобы при :aGoodsLeaving равной NULL в эту переменную записывался 0 например? И результат был не NULL, а :aGoodsArrival - 0 = :aGoodsArrival

Можно ли написать в самой ХП такую проверку, типа: IF :aGoodsLeaving = NULL THEN ...?
У меня чего-то не получается.

Я эту проблему решил на клиенте так: Запускаются подряд два вышеописанных запроса в Query в контексте Snapshot. Потом сравниваем на NULL так: if Query.FieldByName["Sum"].IsNull Then var02 := 0 else var02 := Query.FieldByName["Sum"].AsInteger;
Так все прокатывает, но нужно сделать это на сервере в ХП.

Так вот, можно ли так сделать в самой ХП каким-либо образом?


 
Vlad ©   (2003-10-11 12:32) [1]

>Можно ли написать в самой ХП такую проверку, типа: IF :aGoodsLeaving = NULL THEN ...?

IF (:aGoodsLeaving IS NULL) THEN
BEGIN
END



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

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

Наверх




Память: 0.47 MB
Время: 0.02 c
1-98631
jcrush
2003-10-17 03:56
2003.10.30
регистрация программы в виндовс соответсвии формата


7-98913
vitnt
2003-08-20 09:15
2003.10.30
Подскажите алгоритм расчета CRC-16 для ModBus


1-98630
Малиновский Владимир
2003-10-13 17:50
2003.10.30
Создание компонент - собственные формы (или фреймы),


1-98634
off
2003-10-17 14:37
2003.10.30
Вывод на печать?


1-98600
Санёк
2003-10-19 16:53
2003.10.30
Help