도움좀 부탁드립니다. 0 2 2,911

by 당직하사 SQL [2013.05.11 16:28:16]


SELECT 'KO' MBA
      ,1 AS REPTDC_NO
      ,10 AS ENTRY
      ,NULL AS COR_RPT_NO
      ,NULL AS COR_INPT_NO
  FROM DUAL
UNION
SELECT 'KO' MBA
      ,2 AS REPTDC_NO
      ,4 AS ENTRY
      ,1 AS COR_RPT_NO
      ,10 AS COR_INPT_NO
  FROM DUAL
UNION
SELECT 'KO' MBA
      ,3 AS REPTDC_NO
      ,3 AS ENTRY
      ,2 AS COR_RPT_NO
      ,4 AS COR_INPT_NO
  FROM DUAL
UNION
SELECT 'KO' MBA
      ,5 AS REPTDC_NO
      ,2 AS ENTRY
      ,3 AS COR_RPT_NO
      ,3 AS COR_INPT_NO
  FROM DUAL


이런 구조의 테이블이 있다고 가정했을때
RPT_NO = 5, ENTRY = 2를 선택하는 경우 COR_RPT_NO, COR_INPT_NO의 값을 이용하여
이전 RPT_NO 3, INPT_NO 3을 확인하고 해당 ROW에 COR_RPT_NO, COR_INPT_NO가 있는 경우
그이전행을 탐색하여 최종적으로 COR_RPT_NO, COR_INPT_NO 가 NULL인 RPT_NO = 1, ENTRY = 10인 ROW를
SELECT할수 있는 SQL 조언좀 부탁드립니다.

by 아린 [2013.05.11 16:37:33]
SELECT *
  FROM t
 WHERE cor_rpt_no IS NULL   
 -- WHERE CONNECT_BY_ISLEAF = 1
 START WITH mba       = 'KO'
        AND reptdc_no = 5
        AND entry     = 2
 CONNECT BY mba       = PRIOR mba
        AND reptdc_no = PRIOR cor_rpt_no
        AND entry     = PRIOR cor_inpt_no    

by 당직하사 [2013.05.11 18:11:06]
감사드립니ㅏㄷ.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입