Главная страница
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.046 c
6-1089184441
RagE
2004-07-07 11:14
2004.09.12
Вопрос по TServerSocket, TClientSocket


3-1092387386
DmitryMN
2004-08-13 12:56
2004.09.12
Аналог IsNull а Firebird?


6-1089197321
ctranik
2004-07-07 14:48
2004.09.12
Если кто знает в чём дело, помогите ........ ( IdHTTP )


14-1093103407
QuasiLamo
2004-08-21 19:50
2004.09.12
База слов из MSWord


6-1089282292
sapsi
2004-07-08 14:24
2004.09.12
Определение количества подключений на сервере сокетов