DAY_OFF(TABLE)
ID DAY_OFF UPDATE_DATE
1 1 2008/10/17
1 1 2008/10/11
2 1 2008/10/17
1 1 2008/10/26
2 1 2008/10/26
1 1 2008/11/11
1 1 2008/11/19
3 1 2008/11/19
2 1 2008/12/04
3 1 2008/12/06
1 1 2008/12/08
2 1 2008/12/09
1 1 2008/12/10
DAY_OFF_PERSONAL(TABLE)
ID TOTAL_OFF_DAY
1 11
2 10
3 9
위처럼 2개의 테이블이 있습니다.
DAY_OFF는 사용한 휴일이 등록되어 있고
DAY_OFF_PERSONAL은 개인이 사용할수 있는 휴가일수 입니다.
아래쿼리 처럼 했더니
마지막 DAY_OFF_REMIND_DAYS 가 원하는 데로 나오지 않습니다.
즉 사용할수 있는 총휴가일수에서 지금까지 사용한 휴가일수를 뺀나머지가 나와야합니다.
SELECT d.id USER_ID
,to_char(d.update_date,'yyyy/mm') DAY_OFF_MONTH
,p.total_off_day DAY_OFF_STANDARD_DAYS
,sum(d.day_off) DAY_OFF_DAYS_PER_MONTH
,p.total_off_day - sum(d.day_off) DAY_OFF_REMIND_DAYS <-------- 이부분입니다.
FROM day_off d
,day_off_personal p
WHERE d.id = p.id
GROUP BY d.id
,p.total_off_day
,to_char(d.update_date,'yyyy/mm')
USER_ID DAY_OFF_MONTH DAY_OFF_STANDARD_DAYS DAY_OFF_DAYS_PER_MONTH DAY_OFF_REMIND_DAYS
1 2008/10 11 3 8 <- 11-3(10월) = 8
1 2008/11 11 2 9 <- 11-3(10월)-2(11월) = 6
1 2008/12 11 2 9 <- 11-3(10월)-2(11월)-2(12월) = 4
2 2008/10 10 2 8 <- 10-2(10월) = 8
2 2008/12 10 2 8 <- 10-2(10월)-2(12월) = 6
3 2008/11 9 1 8 <- 9-1(11월) = 8
3 2008/12 9 1 8 <- 9-1(11월)-1(12월) = 7
위의 결과에서 DAY_OFF_REMIND_DAYS가 옆에 나와있는 것처럼 나와야 합니다.
오라클 8.1이구요 ROLLUP은 사용불가능입니다.
통밥굴려봐도 안나오네요..
도와 주십시오.
|