FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[1141] Re:Re:[질문] 감사합니다. 한가지만 더... ^^
왕초보 [] 1783 읽음    2004-06-19 14:33
답변 감사합니다.
프로시저를 만들었습니다.

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 문으로 집계를 냈는데 노가다를 안해도 될것같습니다.


+ -

관련 글 리스트
1139 [질문] 고수님들 쿼리에 대해 질문 있습니다. ^^ 왕초보 1215 2004/06/18
1140     Re:[질문] 고수님들 쿼리에 대해 질문 있습니다. ^^ tk 1767 2004/06/19
1141         Re:Re:[질문] 감사합니다. 한가지만 더... ^^ 왕초보 1783 2004/06/19
1142             Re:Re:Re:[질문] 감사합니다. 한가지만 더... ^^ tk 1870 2004/06/19
1144                 Re:Re:Re:Re:[질문] 너무 감사합니다. 이제 소스 수정의 일만... ^^ (냉무) 왕초보 1423 2004/06/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.