먼저 답변 잘보시면 될텐데
일단 하는 방법은
sql문을
select comcode, max(comname) cu030, sum(cha) cha1, sum(dae) dae1
from get_acc2006( :iyear ,:gaejung ,:tdate ) group by comcode
위처럼 하세요..
왕초보 님이 쓰신 글 :
: 답변 감사합니다.
: 프로시저를 만들었습니다.
:
: COMMIT WORK;
: SET AUTODDL OFF;
: SET TERM ^ ;
:
: /* Stored procedures */
:
: CREATE PROCEDURE "GET_ACC2006"
: (
: "IYEAR" CHAR(4),
: "GAEJUNG" CHAR(5),
: "TDATE" CHAR(10)
: )
: RETURNS
: (
: "COMCODE" VARCHAR(6),
: "COMNAME" VARCHAR(40),
: "CHA" DOUBLE PRECISION,
: "DAE" DOUBLE PRECISION
: )
: AS
: BEGIN EXIT; END ^
:
:
: ALTER PROCEDURE "GET_ACC2006"
: (
: "IYEAR" CHAR(4),
: "GAEJUNG" CHAR(5),
: "TDATE" CHAR(10)
: )
: RETURNS
: (
: "COMCODE" VARCHAR(6),
: "COMNAME" VARCHAR(40),
: "CHA" DOUBLE PRECISION,
: "DAE" DOUBLE PRECISION
: )
: AS
: begin
: FOR
: SELECT ye050, cu030, ye060, ye070
: FROM Acc0002 left outer join com0003
: on Acc0002.Ye050 = com0003.cu010
: where ye010 = :iyear and ye030 = :gaejung
: union all
: SELECT jp060, cu030, jp080, cast(0 as double precision)
: FROM Acc0004 left outer join com0003
: on Acc0004.jp060 = com0003.cu010
: where jp010 < :tdate and jp050 = :gaejung
: and (jp040 = '2' or jp040 = '3')
: union all
: SELECT jp060, cu030, jp080, cast(0 as double precision)
: FROM Acc0004 left outer join com0003
: on Acc0004.jp060 = com0003.cu010
: where jp010 < :tdate and jp050 = :gaejung
: and (jp040 = '1' or jp040 = '4')
: INTO :comCode, :comName, :cha, :dae
: DO
: suspend;
: end
: ^
:
: SET TERM ; ^
: COMMIT WORK;
: SET AUTODDL ON;
:
: 위와 같이 프로시저를 만들었습니다.
:
: 델5 IBQUERY를 사용하는데
:
: SQL.Add(' select comcode, max(comname) cu030, sum(cha) cha1, sum(dae) dae1 from get_acc2006 ');
:
: //SQL.Add(' where iyear = :iyear and gaejung = :gaejung and tdate = :tdate ');
: //SQL.Add(' group by comcode '); 이 두줄은 없애고도 해 봤습니다.
:
: ParamByName('iyear').AsString := Copy(DateF, 1, 4);
: ParamByName('gaejung').AsString := trim(edtGj010.Text);
: ParamByName('tdate').AsString := DateF;
:
: OPEN;
:
: 하면 PARAMETER MISMATCH 오류가 나옵니다.
: 만든 프로시저가 필요하면 올려드리겠습니다.
:
: 한수만 더 부탁드립니다. 첨부파일은 오류 메시지 입니다.
:
: 이게 해결되면 지금까지는 소스에서 쿼리한 후 WHILE 문으로 집계를 냈는데 노가다를 안해도 될것같습니다.
:
:
|