34,594
社区成员
发帖
与我相关
我的任务
分享
select WorkID,MIN(atd_datetime)atd_datetime,'上班'type,case when datepart(hh,MIN(atd_datetime))> 8 then '迟到' else '正常' end as remark ,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name
union all
select WorkID,max(atd_datetime)atd_datetime,'下班'type,type,case when (datepart(hh,Max(atd_datetime))>17 and datepart(mi,Max(atd_datetime))>30) then '正常' else '早退' end as remark ,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name order by WorkID,at
[/quote]
select WorkID,MIN(atd_datetime)atd_datetime,'上班'type,case when datepart(hh,MIN(atd_datetime))> 8 then '迟到' else '正常' end as remark ,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name
union all
select WorkID,max(atd_datetime)atd_datetime,'下班'type,type,case when (datepart(hh,Max(atd_datetime))>17 and datepart(mi,Max(atd_datetime))>30) then '正常' else '早退' end as remark ,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name order by WorkID,atd_datetime DESC
select WorkID,MIN(atd_datetime)atd_datetime,'上班'type,case when datepart(hh,MIN(atd_datetime))> 8 then '迟到' else '正常' end as remark ,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name
union all
select WorkID,max(atd_datetime)atd_datetime,'下班'type,type,case when (datepart(hh,Max(atd_datetime))>17 and datepart(mi,Max(atd_datetime))>30) then '正常' else '早退' end as remark ,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name order by WorkID,at
select WorkID,MIN(atd_datetime)atd_datetime,'上班'type,case when datepart(hh,MIN(atd_datetime))> 8 then "迟到" else “正常" as remark,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name
union all
select WorkID,max(atd_datetime)atd_datetime,'下班'type,type,case when datepart(hh,Max(atd_datetime))>16 then "正常" else "早退" as remark ,Employee_Name from (
select workid,CONVERT(datetime,atd_datetime)atd_datetime from Attendance
)A join Employee aa on workid=aa.sn
group by WorkID,CONVERT(varchar,atd_datetime,23),remark,Employee_Name order by WorkID,atd_datetime DESC
SELECT WorkID, MIN(atd_datetime) atd_datetime, '上班' type, CASE WHEN datepart(hh,
MIN(atd_datetime)) > 8 THEN '迟到' ELSE '正常' END AS remark,
Employee_Name
FROM (SELECT workid, CONVERT(datetime, atd_datetime) atd_datetime
FROM Attendance ) A JOIN
Employee aa ON workid = aa.sn
GROUP BY WorkID, CONVERT(varchar, atd_datetime, 23), Employee_Name
UNION ALL
SELECT WorkID, MAX(atd_datetime) atd_datetime, '下班' type, CASE WHEN datepart(hh,
Max(atd_datetime)) <17 THEN '迟到' ELSE '正常' END AS remark, Employee_Name
FROM (SELECT workid, CONVERT(datetime, atd_datetime) atd_datetime
FROM Attendance ) A JOIN
Employee aa ON workid = aa.sn
GROUP BY WorkID, CONVERT(varchar, atd_datetime, 23), Employee_Name
ORDER BY WorkID, atd_datetime DESC
这样居然可以了。