Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизПодскажите плз как это будет в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.03 c