当前位置: 代码迷 >> Sql Server >> 怎么取同一天同一个人的最早和最晚的纪录?
  详细解决方案

怎么取同一天同一个人的最早和最晚的纪录?

热度:101   发布时间:2016-04-27 18:43:29.0
如何取同一天同一个人的最早和最晚的纪录??
数据库表为timerecords,里面纪录了每天的员工刷卡的卡号:card_id和时间:sign_time,每个卡号都有多条纪录,现在需要根据每天的刷卡时间来纪录考勤情况,也就是只留下每天每个员工刷卡最早的一次和最晚的一次刷卡纪录,中间其他的纪录删除掉.请高手指教!!

------解决方案--------------------
SQL code
delete a from 表 awhere exists(select 1 from 表 where id=a.id and time <>(select min(time) from 表 where id=a.id )and time <>(select max(time) from 表 where id=a.id ))
------解决方案--------------------
--显示为两条记录
SQL code
select     *from     timerecords awhere    sign_time=(select max(sign_time) from timerecords where card_id=a.card_id and datediff(d,sign_time,a.sign_time )=0)or    sign_time=(select min(sign_time) from timerecords where card_id=a.card_id and datediff(d,sign_time,a.sign_time )=0)
  相关解决方案