sql 查找无刷卡人员


刷卡记录表里有员工工号,和刷卡时间。当员工有刷卡时就会生成一条记录,否则为空。还有一张排班表,记录每位员工的排班时间。每个员工在一个就餐时间里(比如12:00--13:00为就餐时间)都要刷上下班卡。
问如何查找到哪位员工在某个时刻(比如12:00--13:00)是漏刷卡的。
打卡表:

   
  record
  
(
工号 suserid char,
姓名 name varchar,
打卡时间 happentime datetime,
考勤类型 type int
)
排班表:
pbtable
(
工号 worknumber varchar
姓名 name varchar
上班时间 s_stime varchar
中午就餐开始时间 s_astime varchar
中午就餐结束时间 s_aetime varchar
下午就餐开始时间 s_pstime varchar
下午就餐结束时间 s_petime varchar
下班时间 s_dtime varchar
)

表里记录了每个员工的排班时间。
每个人的刷卡次数不一定,有些人会在同一时刻刷两三次卡。所以用count()会有很大的漏洞。

sql 数据库

真.两仪式 11 years, 6 months ago
   
  select * from record r
  
left join pbtable p on r.suserid = p.worknumber and s_astime >= 12:00 and s_aetime <= 13:00
where p.worknumber is null

耻骨前弯的消失 answered 11 years, 6 months ago

Your Answer