현재 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