2012년 12월 25일 화요일

실제 근무일수 구하기


select id
, substring(CONVERT(VARCHAR(20), date, 120), 1, 4) as year
, substring(CONVERT(VARCHAR(20), date, 120), 6, 2) as month
, (COUNT(0) - COUNT(hday)) as cnt
from timecard as a
left outer join
(
select substring(CONVERT(VARCHAR(20), date, 120), 1, 10) as hday
from holiday
) as h
on substring(CONVERT(VARCHAR(20), a.date, 120), 1, 10) = h.hday
where datename(dw,date)<>'토요일' and datename(dw,date)<>'일요일'
and a.status<>'퇴근'
group by id, substring(CONVERT(VARCHAR(20), date, 120), 1, 4)
, substring(CONVERT(VARCHAR(20), date, 120), 6, 2)
order by year, month, id



1.     근무일은 출근/지각(퇴근 제외) 된 일수에서 토,일요일을 제외하고 휴일을 제외한 일수입니다.
2.     공휴일날 출근할 경우 근무일수에서 제외됩니다.
3.     토요일, 일요일 출근한 경우 근무일수에서 제외됩니다.
4.     공가, 휴가에 출근한 경우 출근일로 계산됩니다.
A.     공휴일과 주말이 겹치는 경우 공휴일로 계산되지 않습니다. (주말에서 빠졌기 때문에)

댓글 없음: