2011-02-14 78 views
2

我需要执行时间表计算员工将冲入和冲出。我将这些记录存储在一张表中。那张桌子有时间和场地可以用来打卡或打卡。员工可以出去吃午饭或者其他的理由,并且出去打工。我需要扣除那些时间并且得到工作时间。我的表看起来象下面这样: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 

对于(A)的时间7.14 - 10.01是总小时,但他是不是有12.03之间01.05,所以我需要扣除的午饭时间,并获得总小时。如何在查询中做到这一点

回答

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中打开但检查语法)

+0

嗨Cyber​​kiwi,感谢您的解决方案。它非常完美...! – dps123 2011-02-14 21:23:37