조기 아래에서 질문하고 답변을 받았던 내용입니다. 볼랜드포럼 시샵께서도 답변해 주셨는데요...
제가 부족해서 받아먹지를 못하고 있습니다.
결국 최대한의 SQL문으로 Data를 불러와서 프로그램으로 루프를 돌려 임시테이블에 입력하고
다시 그 임시테이블을 쿼리로 불러서 처리를 했습니다.
그 과정에서의 짜증과 스트레스는 이루 말 할 수 없습니다.
딱 한번 이짓거리를 한다면 그런대로 참을만 합니다만.... 수많은 조회프로그램을 모두다 루프를 돌리고
임시테이블에 저장하고... 한다고 생각하니 앞이 꽊~ 막혀옴을 느낍니다.....
그래서 지금 손놓고 2.0나오기를 기둘리고 있습니다.
각설하고...
박지훈.임프님이 답변하신대로 if 앞 끝부분에 세미콜론(;)을 붙이면 고기서 에러나고
Set TERM ^; 인가 이거쓰면 고기서 에러나고 둘다 빼면 if 문에서 에러나고....
조아래처럼 From절 다음에 where 절에 if문을 쓸수가 없는 것인가요?
-- 변수부분 생략...
select --거래처별 현황
cast(a.gc_clcd as varchar(5)) CODE,
cast('1' as varchar(1)) KUBN,
cast(c.ad_clnm as varchar(40)) "외주처명",
cast(
substring(b.ga_krno from 1 for 1)||'-'||substring(b.ga_krno from 2 for 4)||'-'||
substring(b.ga_krno from 6 for 2)||'-'||substring(b.ga_krno from 8 for 3)
as varchar(15)) "JOB NO",
cast(b.ga_desc as varchar(50)) "건 명",
cast(d.cd_des1 as varchar(20)) "구 분",
cast(a.gc_amnt as numeric) "외주금액",
case when a.gc_sngb = '1' then cast(a.gc_amnt as numeric) end "선지급액",
cast(e.ad_clnm as varchar(40)) "광고주명",
cast(b.ga_jbcd as varchar(3)) JBCD
from tr140t a
left outer join tr110t b on a.gc_krno = b.ga_krno
left outer join client c on a.gc_clcd = c.ad_clcd
left outer join tr010t d on d.cd_iden = '1' and b.ga_jbcd = d.cd_code
left outer join client e on b.ga_clcd = e.ad_clcd
if (selt = '1') then --청구월기준이면 청구기간의 데이터를 가져와야 한다
where b.ga_cgdt >= stdt and b.ga_cgdt <= endt else
where b.ga_jsdt >= stdt and b.ga_jsdt <= endt
if (tpcd <> 'T') then --전체구분이면 전체를 일부분이면 일부분데이터를...
and substring(b.ga_krno from 1 for 1) = tpcd
if (jbcd <> '' ) then
and b.ga_jbcd = jbcd
if (wjcd <> '' ) then --전체거래처면 전체를 한 거래처면 한거래처만을 자겨와햐 한다
and a.gc_clcd = wjcd
and a.gc_clcd <> ''
|