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

FireBird Q&A
[1142] Re:Re:Re:[질문] 감사합니다. 한가지만 더... ^^
tk [ssikek] 1869 읽음    2004-06-19 22:26
먼저 답변 잘보시면 될텐데
일단 하는 방법은
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 문으로 집계를 냈는데 노가다를 안해도 될것같습니다.
:
:

+ -

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