首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-02-08 
如何取同一天同一个人的最早和最晚的纪录??数据库表为timerecords,里面纪录了每天的员工刷卡的卡号:card_i

如何取同一天同一个人的最早和最晚的纪录??
数据库表为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) 

热点排行