논리적 문제에 따라 Y집합만 바꾸니 참고하세요...;
Y안에 반복적으로 써 있는 것들을 보면 WHERE 조건에 쓰인 RDIERRLOG_TB 테이블간 비교 데이터 범위가 다릅니다.
즉, 바깥테이블엔 LOG_TIME조건들이 있는데 WHERE 아래테이블은 LOG_TIME조건없이 가져와서 비교합니다.
이 의미가 정말 맞다면 서브쿼리조건을 그대로 살려...
SELECT TAGSN
FROM RDIERRLOG_TB A
WHERE BR_CODE IN ('AL','CL','CU','PH','TB','TE')
AND SUJ_CODE = '356'
AND TAGSN NOT IN (SELECT DISTINCT(TAGSN)
FROM RDF01HH_TB
WHERE TAGSN IN (SELECT TAGSN
FROM RDIERRLOG_TB
WHERE BR_CODE IN ('AL','CL','CU','PH','TB','TE')
AND SUJ_CODE = '356'
)
AND LOG_TIME BETWEEN '2007070901' AND '2007070924'
로 테스트 해 보시고,
조건 범위가 같아야 하는데 빠진거라면,
SELECT TAGSN
FROM RDIERRLOG_TB A
WHERE BR_CODE IN ('AL','CL','CU','PH','TB','TE')
AND SUJ_CODE = '356'
AND NOT EXISTS ( SELECT 1
FROM RDF01HH_TB B
WHERE B.TAGSN = A.TAGSN
)
AND LOG_TIME BETWEEN '2007070901' AND '2007070924'
건승하시길...수고하세요~~