델파이에 쿼리를 코딩하려구 하는데 문법이 틀린지 자꾸 오류가 나네요..
쿼리는 이런겁니다.
select a.gb1,a.custid,c.custname,a.partno,b.pkind,a.avg_price from
(
select decode(substr(partno,1,1),'0','표준부품','1','대우', '2','기아','3','쌍용','4', '현대','5', '기아','6','KB'
,'7','기타','8',decode(substr(partno,1,3),'804','MAZDA','807','VW','809','AUDI','기타')) gb1,
custid,partno,round(nvl(avg(outprice),0),0) avg_price from slat0400
where (concat(year,concat(to_char(month,'FM09'),to_char(day,'FM09')))) >=20050101 and
(concat(year,concat(to_char(month,'FM09'),to_char(day,'FM09')))) <=20050105
group by custid,partno
)a,
(select code,pkind from k_ofpart)b,
(select custid,custname from slam0300)c
where substr(a.partno,4,1)=b.code(+) and a.custid=c.custid(+)
그리 어려운 쿼리는 아닌데 코딩으로 하려구 하니까 계속 애러가 납니다.SQL 스트링에 입력하면 되긴하는데
제가 변수를 입력 받으려구 하거든요..
고수님들 시간내서 좀 봐주시고 더 좋은 방법이 있으면 알려주세요
sql문을 실제로 돌릴때는 개발자가 문법이 틀리지않게 파라메타까지 넣어서 하기때문에 문법상 오류가 생기지 않는데 프로그램만 돌리면 에러가 나는 경우가 종종 있습니다..
이런경우 open하기전에 memo1.text := query.sql.text;라고 하여 나온 결과를 돌려보시면 어디서 잘 못 됐는지 바로 잡히는 경우가 있습니다...
전 요즘은 3Tier로 하기에... 로그를 남겨서 그것를 돌려보고 있습니다..
흔한 실수이니까..... 되집어 보면 바로 잡는데 시간이 오래 걸리지 않을 겁니다...