SQL 2005中获取每天每个人考勤的第一条和最后一条记录
大多数的考勤机都会存在重复的考勤记录,给我们统计考勤带来了影响,常用的考勤软件都支持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)