一个不是很难,但我想不出简洁方法的问题?

ypwyy 2004-05-06 05:38:54
一个考勤系统,因为一个人可能同时刷几下卡,而其实只有几条数据有用,所以我的目的是提取出其中任意一条有效的条目:
举个例子:
员工 刷卡时间
张三 16:52
张三 16:53
张三 16:54
王五 12:20
李四 11:20
李四 11:21

我想得到如下数据
张三 16:52
王五 12:20
李四 11:20

有没有比较简单有效的方法
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjdelphiboy 2004-05-06
  • 打赏
  • 举报
回复
select distinct 员工,(select top 1 刷卡时间 from tab where 员工 = b.员工) as '刷卡时间' from tab b
8992026 2004-05-06
  • 打赏
  • 举报
回复
应该这样才合理:
select *
from tablename a
where 刷卡时间=(select top 1 刷卡时间 from tablename where 员工=a.员工 and abs(datadiff(second,刷卡时间,'规定的上下班时间'))<一个额定的秒数
order by 刷卡时间
)

其中:规定的上下班时间、一个额定的秒数都是常量


8992026 2004-05-06
  • 打赏
  • 举报
回复
select 员工,min(刷卡时间) as 刷卡时间
from tablename
group by 员工

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧