내가 하고 싶은기능이 위 쿼리를 조회했을때 CC_MJ의 컬럼이 O인 수검자들만 골라서 GRMJDQQAA에 데이터가 없으면 'X' 있으면 ''로 출력하고 싶음
,(SELECT CASE WHEN COUNT(PATNO) <= 0 THEN 'X' ELSE '' END
FROM GRMJDQQAA QQAA
WHERE 1=1
AND QQAA.PATNO = PATNO
AND QQAA.VIST_SN = VIST_SN
AND QQAA.HSTK_VRSN_CD = '0101'
AND QQAA.HSTK_TYP_CD = 'GMJ01'
AND CC_MJ = 'O'
) AS EXAMPLE1
이렇게 작성하니까 AND CC_MJ = 'O' 이 조건이 안걸림
,(CASE WHEN CC_MJ = 'O' AND
(SELECT COUNT(PATNO) FROM GRMJDQQAA QQAA
WHERE 1=1
AND QQAA.PATNO = REPORT.PATNO
AND QQAA.VIST_SN = REPORT.VIST_SN
AND QQAA.HSTK_VRSN_CD = '0101'
AND QQAA.HSTK_TYP_CD = 'GMJ01') <= 0
THEN 'X' ELSE '' END ) AS EXAMPLE
이렇게 따로 걸어주니까 제대로 걸렸다.
조건이 안걸리는 쿼리의 PATNO의 COUNT는 GRMJDQQAA만 카운트를 해서 반환하는 것같다.
여튼 WHERE절에 join해서 안되면 CASE WHEN으로 따로 따로 조건을 걸어보자!