oracel 9i -> 8i 문제점 0 0 1,428

by 윤정희 [2006.06.12 14:17:55]


현재 oracle 9i -> oracle 8i로 디비 이관을 합니다.

 

 이 쿼리문입니다. 8i에서는 CASE문이 먹히지 않아서..

제가 DECODE 문으로 바꾸었습니다.

그런데 MAX쪽에서 에러가 납니다.

 

원본 쿼리문을 파일로 올려 놓습니다.

 

현재 통계를 내는 쿼리문입니다.

 

HQ_CODE : 사업부 코드명

BASIC_SEQ : 사업부 밑의 하부 코드명

 

CASE문으로 되어있는 쿼리문을 제가 DECODE문으로 바꾸었습니다.

주석처리된 부분이 CASE문이고요...

 

누가 제발 좀 해결 좀 해 주십시요....

 

8i에서는 서브쿼리(select)가 한번밖에 돌지 않습니다.

계속해서 돌면서 통계를 내야 하는데...어찌해야 할까요?

 

 SELECT a.HQ_CODE,
                                 DECODE(SIGN(SUM(DECODE(a.ANSWER_GRADE,'Y',1,0))),1,
                         (SELECT MAX(b.BASIC_SEQ) FROM EGRPTEQSS b WHERE b.ANSWER_GRADE = 'Y' AND b.HQ_CODE = a.HQ_CODE),
                         (SELECT MAX(b.BASIC_SEQ) FROM EGRPTEQSS b WHERE b.ANSWER_GRADE = 'N' AND b.HQ_CODE = a.HQ_CODE))
                         AS BASIC_SEQ

     --CASE WHEN SUM(DECODE(a.ANSWER_GRADE,'Y',1,0)) > 0
                                 --          THEN (SELECT MAX(b.BASIC_SEQ) FROM EGRPTEQSS b
                                 --                 WHERE b.ANSWER_GRADE = 'Y' AND b.HQ_CODE = a.HQ_CODE)
                                 --     ELSE (SELECT MAX(b.BASIC_SEQ) FROM EGRPTEQSS b
                                 --                 WHERE b.ANSWER_GRADE = 'N' AND b.HQ_CODE = a.HQ_CODE)
                                 --END                 AS BASIC_SEQ
                            FROM EGRPTEQSS a
                           WHERE a.ANSWER_GRADE IS NOT NULL

                           GROUP BY a.HQ_CODE

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입