|
SELECT B.CUST_NUM -- 고객번호
,A.REGI_STS -- 등록상태
,A.REG_YMD -- 등록일자
,D.SOC_NUM -- 주민사업자번호
,D.CUST_NM -- 성명
,D.BIZ_REGI_NUM -- 사업자번호
,E.REPRE_NM -- 대표자명
,A.CNL_YMD -- 해제일자
,A.CNL_WHY -- 해제사유
,B.AGREE_YN -- 동의여부
,(SELECT NAME
FROM E21.E2AT_EMP_BASE_INF -- 사원기본정보 T
WHERE EMPID = A.CRT_EMPID) -- 등록자
,A.CRT_EMPID -- 등록사번
FROM C21.C2FT_CREDIT_INF A -- 고객신용정보 T
,C21.C2FT_EARLY_ALAM B -- 조기경보 T
,C11.C1BT_USE_CONT C -- 사용계약 T
,C11.C1AT_CUST_INFO D -- 고객정보 T
,C11.C1AT_BIZ_REGI E -- 사업자등록증 T
,C31.C3AT_INST_PLACE F -- 설치장소
,A11.A1AV_ZIP_CENTER G -- 우편번호VIEW
,C41.C4AT_CENT_INF H -- 고객센터정보
WHERE A.CREDIT_REG_TYPE = ’20’ -- 신용등록유형
AND A.CREDIT_TREAT_STS = ’30’ -- 신용처리상태(처리완료)
AND B.SOC_BIZ_NUM = A.SOC_BIZ_NUM
AND (B.JOB_YMD -- 작업일자
,B.SEQ -- 일련번호
) IN (SELECT /*+ INDEX_DESC(X C2FX_0_EARLY_ALAM) */
JOB_YMD -- 작업일자
,SEQ
FROM C21.C2FT_EARLY_ALAM
WHERE SOC_BIZ_NUM = A.SOC_BIZ_NUM
-- AND NONPAY_JOB_STS = ’80’ -- 체납작업상태(처리완료)
AND ROWNUM = 1
)
AND C.USE_CONT_NUM = B.USE_CONT_NUM
AND D.CUST_NUM = B.CUST_NUM
AND E.BIZ_REGI_NUM = D.BIZ_REGI_NUM
AND F.INST_PLACE_NUM = C.INST_PLACE_NUM
AND G.ZIP_SEQ = F.ZIP_SEQ
AND H.CENTER_CD = G.CENTER_CD
AND H.BRANCH_CD LIKE ’’||’%’ -- 지사
AND C.NONPAY_MANAGE_SEC LIKE ’’||’%’ -- 체납관리부문
AND G.CITY LIKE ’’||’%’
AND G.COUNTY LIKE ’’||’%’
AND G.TOWN LIKE ’’||’%’
;
위 쿼리의 밑에 LIKE 조건들 중 일부만 들어오게 되면 조건에 따라서 쿼리의 실행계획이 바뀌는데
들어오는 조건에 상관없이 실행계획이 나오게 하려면 어떻게 해야되나요?
UNION ALL 을 사용해서 안들어오는 조건은 공집합으로 만들어야 되는거 같은데요..
|