현재 데이터는 병원 의원같은 곳에서의 환자 명세서건입니다.
현재 제가 부탁하고 싶은 부분은
샘플데이터에서 4가지 변수로 행해 지는 것을 쿼리로 만들어 주시는 것을 원합니다.
4가지 변수는
1.NO(수진자번호 [주민등록번호입니다. 개인정보보호법으로 그냥 임의의 숫자로 매겨져 있습니다.])
(예를들어 1- 김준홍 , 2 - 윤민식 , 3 - 신영선)이런식으로 되어 있습니다.)
2.M_SICK (주상병 코드입니다. 쉽게 풀어 쓰면 그냥 병에 대한 코드입니다.)
3.RECU_FR_DD (요양개시일자입니다. 요양을 시작한 날짜입니다.)
4.RECU_TO_DD (요양만료일자입니다. 요양을 마친 날짜입니다.)
NO | M_SICK | RECU_FR_DD | RECU_TO_DD |
1 | j23 | 2011-01-08 | 2011-01-09 |
1 | j23 | 2011-09-20 | 2011-09-23 |
1 | J23 | 2011-09-25 | 2011-09-27 |
3 | h53 | 2011-08-09 | 2011-08-29 |
4 | i45 | 2011-08-07 | 2011-08-20 |
5 | o23 | 2011-09-25 | 2011-09-30 |
예를 들면 이런식으로 행해져 있습니다.
제가 모르겠는 부분은 NO1(1번사람 김준홍) 이 같은 질병인 J23으로 한번 내원하고 다음내원할때까지의 기간
(NO=2,요양개시일자) - (NO=1,요양만료일자) = 2011-09-20 - 2011-01-09 >=30일 이상이지 않습니까?
이렇게 되면 하나의 묶음으로 보기 힘들고
(NO=3,요양개시일자) - (NO=2,요양만료일자) = 2011-09-25 - 2011-09-23 < 30일 이하 의 경우는
하나의 묶을음로 보는것입니다.
[[제가 모르겠는부분은 데이터베이스에서 다른 레코드간의 속성 더하기 빼기를 할줄을 모르겠습니다. 더군다나 내림차순으로 NO(사람)과 M_SICK(병)별로 일단 정렬하고 두 개의 날짜도 오름차순으로 정렬한후(ORDER BY)
위와 같이 묶음으로 볼수 있냐 없냐를 알고 싶습니다.]]
결론적으로 말씀드리면
NO | M_SICK | RECU_FR_DD | RECU_TO_DD | SET (30일안의 같은 군집?) | 날짜차이 |
1 | j23 | 2011-01-08 | 2011-01-09 | J23SET1 | |
1 | j23 | 2011-09-20 | 2011-09-23 | J23SET2 | 2011-09-20 (-)(빼기) 2011-01-09 |
1 | J23 | 2011-09-25 | 2011-09-27 | J23SET2 | 2011-09-23 -2011-09-25 |
1 | J23 | 2011-10-09 | 2011-10-29 | J23SET2 | 2011-10-09 -2011-09-27 |
1 | J23 | 2011-10-30 | 2011-10-31 | J23SET2 | 2011-10-30 -2011-10-29 |
1 | J23 | 2012-05-01 | 2012-05-03 | J23SET3 | 2012-05-01 -2011-10-31 |
위와 같이 같은 상병에 대한 같은 사람에 날짜 차이에 의한 SET(예를들면 감기가 걸렸는데 30일 차이가 나는 감기는 다른 또 다른 감기로 보는것이라고 생각하시면 이해가 되실겁니다. 30일안에 특정 감기 (M_SICK) 때문에 다시 오면 같은 감기 (같은SET)로 본다는 것입니다.