PERNO PROJECT ST_DT END_DT
0001 A001 20090101 20090105
0001 B001 20090104 20090108
0001 B001 20090111 20090114
0001 C001 20090112 20090130
프로젝트 발령 때문에 질문 드리는데요.
사원을 프로젝트에 발령내는데 중복발령이 가능합니다.
예를 들면, 위에서 0001 이라는 사원이 한달동안 프로젝트 A001,B001,C001 에 발령되어서 일을 했고,
A001 프로젝트에서는 1~5일까지, B001 프로젝트에서는 4~8일까지...
이런식으로 중복되어 발령이 되게 되어 있습니다.
즉, 하루에 한개의 프로젝트만 한게 아니라 몇개의 프로젝트에 발령되어 일할 수 있는 것이죠.
여기서 구하려고 하는것은 이 사원이 한달동안 순수하게 일한 날만을 뽑아내려는 것인데..
중복발령이 되었으므로 중복되는 날은 하루로 치고 계산을 해야됩니다.
그렇게해서 위 사원이 한달동안 일한 날은,
A001 : 1~5 = 5일
B001 : 4~8 = 5일
B001 : 11~14 = 4일
C001 : 12~30 = 19일
합계 : 5 + 5 + 4 + 19
= 33 - 중복된 날 = ?
각 프로젝트별 일한 날을 모두 더해서 중복된 날수를 제거하면 한달동안 일한 날이 계산이 되어 나오게 되는거죠.
PERNO WORK_DT
0001 15
0002 20
0003 30
이런식으로 만들어서 급여계산을 하려고 했더니 실력이 없어서 쿼리 하나로는 안되더군요.
그래서 예전에 프로시저로 만들었었는데 생각날때마다 해봐도 힘드네요.
고수님들의 도움을 요청합니다.
꼭 도와주세요^^