이력관리 퀴즈입니다. 1 0 2,150

by 강정식 [2007.04.26 11:14:54]


이번에는 이력관리 퀴즈를 한번 내볼까 합니다.

참고사이트는 답변 올릴 때 알려드리겠구요. 퀴즈는 다음과 같습니다.

 

REC_NAME을 구분하여 연속적으로 들어오는 날짜(선분)를 하나의 날짜(선분)로 만드는 것입니다. 즉 날짜가 겹치면 연속된것으로 보고 하나로 만드는것이죠.

 

샘플데이터는 다음과 같습니다.

 

SELECT 'A' REC_NAME, '199801' S_DATE, '199804' E_DATE FROM DUAL UNION ALL
SELECT 'A' REC_NAME, '199806' S_DATE, '199809' E_DATE FROM DUAL UNION ALL
SELECT 'A' REC_NAME, '199808' S_DATE, '199812' E_DATE FROM DUAL UNION ALL
SELECT 'A' REC_NAME, '199812' S_DATE, '199902' E_DATE FROM DUAL UNION ALL
SELECT 'A' REC_NAME, '199912' S_DATE, '200002' E_DATE FROM DUAL UNION ALL
SELECT 'B' REC_NAME, '199801' S_DATE, '199807' E_DATE FROM DUAL UNION ALL
SELECT 'B' REC_NAME, '199806' S_DATE, '199809' E_DATE FROM DUAL UNION ALL
SELECT 'B' REC_NAME, '199811' S_DATE, '199812' E_DATE FROM DUAL UNION ALL
SELECT 'D' REC_NAME, '199801' S_DATE, '199804' E_DATE FROM DUAL;

 

이를 다음과 같은 데이터로 만드시면 됩니다.

 

SELECT 'A' REC_NAME, '199801' S_DATE, '199804' E_DATE FROM DUAL UNION ALL
SELECT 'A' REC_NAME, '199806' S_DATE, '199902' E_DATE FROM DUAL UNION ALL
SELECT 'A' REC_NAME, '199912' S_DATE, '200002' E_DATE FROM DUAL UNION ALL
SELECT 'B' REC_NAME, '199801' S_DATE, '199809' E_DATE FROM DUAL UNION ALL
SELECT 'B' REC_NAME, '199811' S_DATE, '199812' E_DATE FROM DUAL UNION ALL
SELECT 'D' REC_NAME, '199801' S_DATE, '199804' E_DATE FROM DUAL

 

예를 들어 보겠습니다.

 

위의 샘플 데이터를 선분으로 표시하면 아래처럼 되겠죠.

여기서 REC_NAME 값에 따라 색깔로 구분을 했습니다.

 

 

 

 

여기서 아래 그림처럼 같은 REC_NAME 값 안에서 연속으로 선분이 겹치는 값들을 체크하고..

 

 

 

 

이를 아래 그림처럼 하나의 선분으로 만드시면 됩니다.

 

 

 

 

 

보시고 의문사항이 있으시면 리플 달아주시기 바랍니다.

정답과 해설은 일주일 후에 올리겠습니다.

감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입