by 왕보초 [Oracle 기초] Oracle 오라클 [2020.05.24 05:24:14]
제가 쿼리를 잘 못 짠것 같은데~~~ 확인 부탁드립니다.
LABBO데이터가 없으면 LABCB 데이터를 보여주고 값이 있으면 LABBO ARCCBT_NO(그룹번호) MAX 값만 정보만 보여주도록 수정
하여 VIEW 테이블 만들고 싶은데... 여러 고수님의 조언 부탁드립니다.(쿼리 수정)
Select DECODE(LABBO.ARCCBT_NO , NULL, '1' , LABBO.ARCCBT_NO) AS ARCCBT_NO, DECODE(LABBO.CMPNY_NO , NULL, 'ORGIN' , 'ADD') AS TBL_TYPE, DECODE(LABBO.CMPNY_NO , NULL, LACB.CMPNY_NO , LABBO.CMPNY_NO) AS CMPNY_NO, DECODE(LABBO.BUDGET_NO , NULL, LACB.BUDGET_NO , LABBO.BUDGET_NO) AS BUDGET_NO, DECODE(LABBO.APP_NO , NULL, LACB.APP_NO , LABBO.REQST_CM_NO) AS REQST_CM_NO, DECODE(LABBO.APP_NO , NULL, LACB.APP_NO , LABBO.APP_NO) AS APP_NO, DECODE(LABBO.BSNS_NM , NULL, LACB.BSNS_NM , LABBO.BSNS_NM) AS BSNS_NM, DECODE(LABBO.TAXITM_IEM , NULL, LACB.TAXITM_IEM , LABBO.TAXITM_IEM) AS TAXITM_IEM, DECODE(LABBO.BUDGET_IEM , NULL, LACB.BUDGET_IEM , LABBO.BUDGET_IEM) AS BUDGET_IEM, DECODE(LABBO.CNT_NCSSRY , NULL, LACB.CNT_NCSSRY , LABBO.CNT_NCSSRY) AS CNT_NCSSRY, DECODE(LABBO.CNT_SUBSIDY , NULL, LACB.CNT_SUBSIDY, LABBO.CNT_SUBSIDY) AS CNT_SUBSIDY, DECODE(LABBO.CNT_SLFSHR , NULL, LACB.CNT_SLFSHR , LABBO.CNT_SLFSHR) AS CNT_SLFSHR, DECODE(LABBO.DETAIL , NULL, LACB.DETAIL , LABBO.DETAIL) AS DETAIL, DECODE(LABBO.BSNS_ETC , NULL, LACB.BSNS_ETC , LABBO.BSNS_ETC) AS BSNS_ETC, DECODE(LABBO.DELETE_AT , NULL, LACB.DELETE_AT , LABBO.DELETE_AT) AS DELETE_AT, DECODE(LABBO.REGIST_DT , NULL, LACB.REGIST_DT , LABBO.REGIST_DT) AS REGIST_DT, DECODE(LABBO.REGIST_ID , NULL, LACB.REGIST_ID , LABBO.REGIST_ID) AS REGIST_ID, DECODE(LABBO.UPDT_ID , NULL, LACB.UPDT_ID , LABBO.UPDT_ID) AS UPDT_ID, DECODE(LABBO.UPDT_DT , NULL, LACB.UPDT_DT , LABBO.UPDT_DT) AS UPDT_DT FRom LAB_BIZ_BUDGET_ORIBDGT LABCB LEFT JOIN (Select * From LAB_CNCLS_BDGTPR LABBOIN Where LABBOIN.ARCCBT_NO = (select MAX(ARCCBT_NO) From LP_AGREM_CNCLS_BDGTPR where REQST_CM_NO = LABBOIN.REQST_CM_NO) ) LABBO ON 1=1 AND LABBO.CMPNY_NO = LACB.CMPNY_NO AND LABBO.REQST__NO = LACB.APP_NO AND LABBO.BUDGET_TAXITM_IEM = LACB.BUDGET_TAXITM_IEM AND LABBO.BUDGET_BUDGET_IEM = LACB.BUDGET_BUDGET_IEM
-- AND LABBO.BSNS_NM = LACB.BSNS_NM
우선 쿼리는 수정했는데.(문제점..
1. 우선 위에 쿼리에 사업명도 조건에 걸었어야 했는데.. 안것이 었고...(주석처리)
2. 처음 쿼리에 ON 절에 조건 중 MAX값을 조회 조건을 걸어서 ORA-01799 부분은 수정해서 해결했구요~~~
----------------------------------------------------------------------------------------------------------------------------------------------
제가 원하는 결과는 LABBO 데이터가 없으면 LACB 테이블 데이터만를 보여주고 LABBO 데이터가 있으면 LABBO 테이블 데이터만 보여주고 싶은 부분인데.....
LABBO(22건) , LACB(24건) 경우 LABBO데이터가 없는 LACB건의 데이터가 보여서 쿼리 자체가 잘 못 된것 같은데... 뭘 어떻게 해야 할 지 잘 모르겠네요????