日期:2014-05-17  浏览次数:20585 次

联合查询
select WorkID,MIN(atd_datetime)atd_datetime,'上班'type from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A
group by WorkID,CONVERT(varchar,atd_datetime,23)
union all
select WorkID,max(atd_datetime)atd_datetime,'下班'type from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A
group by WorkID,CONVERT(varchar,atd_datetime,23) order by WorkID,atd_datetime DESC

得出如下结果

atd_datetime            Type   workid
2012-03-10 08:38:00.000 上班 1111  
2012-03-09 18:21:00.000 下班 1111  
2012-03-09 07:56:00.000 上班 2222  
2012-03-08 22:08:00.000 下班 2222  
2012-03-08 07:55:00.000 上班      1111  
2012-03-06 15:04:00.000 下班 1111  

还有表Employee
Employee_Name SN
王静             1111
李明柯           2222

如何得出下面结果
atd_datetime            Type   workid  Remark Name
2012-03-10 08:38:00.000 上班 1111   迟到    王静
2012-03-09 18:21:00.000 下班 1111   正常    王静
2012-03-09 07:56:00.000 上班 2222   正常    李明柯
2012-03-08 22:08:00.000 下班 2222   正常    李明柯
2012-03-08 07:55:00.000 上班      1111   正常    王静
2012-03-06 15:04:00.000 下班 1111   早退    王静

------解决方案--------------------
上班时间8点到5点半?