MS-访问查询总时数和时间扣除

时间:2011-02-14 19:24:27

标签: sql ms-access ms-access-2007

我需要执行时间表计算员工会打卡并打卡。我将这些记录存储在一个表中。那张桌子有时间和一个冲头或冲头的场地。员工可能会出去吃午饭或其他原因并出去打工。我需要扣除这些时间并获得工作时间。我的表格如下所示:

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

对于(A)的时间7.14 - 10.01是总小时数,但他在12.03到01.05之间不在那里,所以我需要扣除午餐时间并获得总小时数。如何在查询

中执行此操作

1 个答案:

答案 0 :(得分: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)

(尚未打开Access但请检查语法)