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

Вниз

Подскажите плз как это будет в Interbase SQL   Найти похожие ветки 

 
HMT   (2004-08-17 10:26) [0]

Это текст процедуры MS-SQL, уже три дня пытаюсь перести его в interbase. Смысл скрипта - суммирование прихода, вычитание расхода для получения остатков. Помогите плз, если кто синтаксис знает.

DELETE FROM Results

INSERT INTO Results SELECT DISTINCT(ProductName), SUM(Quantity) as Quantity from Inbound GROUP BY ProductName

DECLARE @ProductName varchar(500)
DECLARE @Discount int
DECLARE CT CURSOR FOR SELECT DISTINCT(ProductName), SUM(Discount) as Discount from Outbound GROUP BY ProductName

OPEN CT
WHILE 1=1 BEGIN
 FETCH FROM CT INTO @ProductName, @Discount

 IF @@fetch_status=-1
     BREAK
 IF @@fetch_status=-2
     CONTINUE

 UPDATE Results SET Quantity=Quantity-@Discount WHERE ProductName=@ProductName
END

DEALLOCATE CT
SELECT * FROM Inbound
SELECT * FROM Outbound
SELECT * FROM Results


 
HMT   (2004-08-17 10:38) [1]

Может курсор здесь лишний ?

Чем можно заменить fetch_status?


 
Соловьев ©   (2004-08-17 10:41) [2]


> DECLARE CT CURSOR FOR SELECT DISTINCT(ProductName), SUM(Discount)
> as Discount from Outbound GROUP BY ProductName
>
> OPEN CT
> WHILE 1=1 BEGIN
>  FETCH FROM CT INTO @ProductName, @Discount
>
>  IF @@fetch_status=-1
>      BREAK
>  IF @@fetch_status=-2
>      CONTINUE
>
>  UPDATE Results SET Quantity=Quantity-@Discount WHERE ProductName=@ProductName
> END

насколь я понял тут основной трабл?
for
SELECT DISTINCT(ProductName), SUM(Discount) as Discount from Outbound GROUP BY ProductName
into :ProductName, :Discount
do begin
 UPDATE Results SET Quantity=Quantity-:Discount WHERE ProductName=:ProductName;
end;


 
Соловьев ©   (2004-08-17 10:42) [3]


> Чем можно заменить fetch_status?

нету такого


 
HMT   (2004-08-17 10:42) [4]

Да, тут.

thankz..щас попробую


 
Sandman25 ©   (2004-08-17 11:01) [5]

Кстати, на MSSQL вместо ХП надо было написать:
select productname, sum(discount)
from
(
select productname, sum(discount) discount
 from inbound
 group by productname
union all
select productname, -sum(discount) discount
 from outbound
 group by productname
) a
group by productname


 
Sandman25 ©   (2004-08-17 11:03) [6]

Или даже

select productname, sum(discount)
from
(
select productname, discount
from inbound
union all
select productname, -discount
from outbound
) a
group by productname



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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
10-1036753799
KA_
2002-11-08 14:09
2004.09.12
OLE с помощью CORBA


1-1092556672
TeNY
2004-08-15 11:57
2004.09.12
Kylix Setup Error -10 :в чём проблема?


3-1092641231
Ted
2004-08-16 11:27
2004.09.12
самая отказоустойчивая сетевая база


1-1093427866
Layner
2004-08-25 13:57
2004.09.12
Как программно добавит суб меню в PopupMenu?


4-1090860450
Awod
2004-07-26 20:47
2004.09.12
Перехват сообщений компонентом.