Subject RE: [firebird-support] help-Convert Sql Server to firebird
Author Hans
This maybe close to what you wanted to achieve
or may give you some ideas how to approach it.

Created Table t1

CREATE TABLE T1 (
SD INTEGER
, ID INTEGER
, RE INTEGER
, PAY INTEGER
, CASH INTEGER
)

and populated with

SD id re pay cash
1 1 0 20 10
2 1 0 30 15
3 2 0 50 12

Converted your TEST procedure
---------------------------------------
CREATE PROCEDURE test

declare
@id int,
@pay int,
@cash int,
@sum int

set @sum = 0

DECLARE sum_cursor Cursor
FOR SELECT
id,
Pay,
Cash
FROM T1
ORDER BY SD

OPEN sum_cursor

FETCH NEXT FROM sum_cursor
INTO
@id,
@pay,
@cash

WHILE @@FETCH_STATUS = 0
BEGIN
select @sum = @sum + (@pay-@cash)
update T1 set RE = @sum
where Id = @Id

FETCH NEXT FROM sum_cursor
INTO
@id,
@pay,
@cash
END

CLOSE sum_cursor
DEALLOCATE sum_cursor

select * from T1
ORDER BY SD

END

GO
---------------------------------------------
To
---------------------------------------------
CREATE PROCEDURE TEST
RETURNS ( SD INTEGER
, ID INTEGER
, RE INTEGER
, PAY INTEGER
, CASH INTEGER)

AS

DECLARE Sum_Id Integer;
DECLARE Sum_RE Integer;

BEGIN

FOR SELECT
Id,
SUM(pay - cash)
FROM T1
GROUP BY iD
INTO
:Sum_Id,
:Sum_RE
DO
BEGIN
UPDATE T1
SET RE = :Sum_RE
WHERE Id = :Sum_Id;
END

FOR
SELECT
SD,
Id,
RE,
Pay,
Cash
FROM T1
INTO
:SD,
:Id,
:RE,
:Pay,
:Cash
DO
SUSPEND;
END
---------------------------------------------
Run a
SELECT * FROM TEST
Which returned the following values

SD id re pay cash
1 1 25 20 10
2 1 25 30 15
3 2 38 50 12





-----Original Message-----
From: firebird-support@yahoogroups.com
[mailto:firebird-support@yahoogroups.com] On Behalf Of Farshid Dehghan
Sent: Tuesday, August 21, 2012 1:13 PM
To: firebird-support@yahoogroups.com
Subject: [firebird-support] help-Convert Sql Server to firebird

Please guide me how can I convert the following code.
Sql Server To firebird

CREATE PROCEDURE test

AS
BEGIN

declare @id int, @pay int,@cash int, @sum int set @sum = 0 DECLARE
sum_cursor Cursor FOR SELECT id, Pay,Cash FROM T1 ORDER BY SD OPEN
sum_cursor FETCH NEXT FROM sum_cursor INTO @id, @pay,@cash WHILE
@@FETCH_STATUS= 0 BEGIN select @sum = @sum + (@pay-@cash) update T1 set RE =
@sum where Id = @Id FETCH NEXT FROM sum_cursor INTO @id, @pay,@cash END
CLOSE sum_cursor DEALLOCATE sum_cursor select*from T1 ORDER BY SD END GO



------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Visit http://www.firebirdsql.org and click the Resources item on the main
(top) menu. Try Knowledgebase and FAQ links !

Also search the knowledgebases at http://www.ibphoenix.com

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Yahoo! Groups Links