2011-02-14 4 views
2

시간 계산을 수행해야합니다. 직원이 펀치 아웃하고 펀치 아웃합니다. 나는 그 기록들을 하나의 테이블에 저장한다. 그 테이블에는 펀치 또는 펀치를위한 시간과 필드가 있습니다. 직원은 점심 식사 나 다른 이유로 나갈 수도 있고 밖으로 나올 수도 있습니다. 그 시간을 공제하고 근무 시간을 알아야합니다. 그래서 점심 시간을 공제하고 총을 얻을 필요가 10.01 총 시간입니다,하지만 그는 01.05에 12.03 사이가 아니었다 - 7.14은 (A)의 시간 동안MS- 총 시간 및 시간 공제에 대한 쿼리

PunchTime EmpCode IsInpunch 
10:01 AM (A)  T 
12:03 PM (A)  F   (this isoutpunch) 
01:05 PM (A)  T 
07:14 PM (A)  F 
10:32 AM (B)  T 

: 내 표는 아래와 같이 보일 것 시간. 쿼리에서이를 수행하는 방법

답변

4

이것은 매우 간단합니다. 당신의 T와 F IsInPunch가 균형을 이룬다 고 가정하면, 하루 동안 당신은 T-F 또는 T-F-T-F 등 (항상 쌍을 이룬다)을 가질 것이고, F를 합계하고 T의 합계를 빼십시오.

select empcode, DateValue(PunchTime), 
    sum(IIF(IsInPunch='F',PunchTime,0)) - 
    sum(IIF(IsInPunch='T',PunchTime,0)) 
from TimeSheet 
group by empcode, DateValue(PunchTime) 

는 (오픈 액세스 없어하지만 구문 확인합니까)

+0

안녕하세요 Cyberkiwi, 당신이 솔루션을 주셔서 감사합니다 그것은 완벽하게 일을 ...! – dps123