大多数的考勤机都会存在重复的考勤记录,给我们统计考勤带来了影响,常用的考勤软件都支持SQL Server数据库,那么我们可以做个查询来实现此功能

网上也有不少人在问这个问题,但回答的sql 语句实现起来都比较复杂,这里我们分两步实现,然后把查询结果合并在一起就行了,更简单一些

我们的员工考勤表中有四列最关键的数据:号码,姓名,日期,所在店

通过提取考勤时间中的日期部分进行合并,然后取最小日期和最大日期就能实现想要的结果,如下:

1 SELECT     号码, 姓名, CONVERT(varchar(100), 日期, 23) AS sss, MIN(日期) AS 日期, 所在店
2 FROM         dbo.员工考勤
3 GROUP BY 号码, 姓名, 所在店, CONVERT(varchar(100), 日期, 23)
4 UNION
5 SELECT     号码, 姓名, CONVERT(varchar(100), 日期, 23) AS sss, MAX(日期) AS 日期, 所在店
6 FROM         dbo.员工考勤 AS 员工考勤_1
7 GROUP BY 号码, 姓名, 所在店, CONVERT(varchar(100), 日期, 23)