我现在有个员工表(工号uid 姓名username)考勤表(工号uid 考勤时间attime)一人一天4次考勤
现在我想将上午8:00到9:00为上午上班考勤时间,11点至13点为上午下班考勤时间,13点至15点为下午上班考勤时间,16点至18点为下午下班考勤时间
现在要做成下面这样的表:
员工 上午上班 上午下班 下午上班 下午下班
小陈 正常 未签到 迟到 正常
这样的SQL语句怎么写
------解决方案--------------------
select
a.username,
max(case when b.attime between '8:00' and '9:00' then '正常' when b.attime is null then '未签到' else '迟到' end) as 上午上班,
max(case when b.attime between '11:00' and '13:00' then '正常' when b.attime is null then '未签到' else '早退' end) as 上午下班,
---还有两条自己补齐
from
员工表 as a inner join 考勤表 as b on a.uid=b.uid
group by
a.username