公司实行上下班打卡机制,打卡时间大于08:00属于迟到,少于17:00属于早退
现有两个表
员工打卡表TimeCLK有以下字段
TId int identity,//编号
EmployeeId varchar(20),//员工编号
DataCLK datetime,//打卡日期
TimeCLK varchar(20),//打卡时间
员工信息表EmployeeInfo有以下字段
EmployeeId varchar(20),//员工编号
EName varchar(20),//员工姓名
EDepartment varchar(20),//员工部门
现公司想做个报表系统有以下字段必须显示
EmployeeId,EName,EDepartment,迟到次数,早退次数
现请写出查出该报表的SQL语句
现有两个表
员工打卡表TimeCLK有以下字段
TId int identity,//编号
EmployeeId varchar(20),//员工编号
DataCLK datetime,//打卡日期
TimeCLK varchar(20),//打卡时间
员工信息表EmployeeInfo有以下字段
EmployeeId varchar(20),//员工编号
EName varchar(20),//员工姓名
EDepartment varchar(20),//员工部门
现公司想做个报表系统有以下字段必须显示
EmployeeId,EName,EDepartment,迟到次数,早退次数
现请写出查出该报表的SQL语句
(select count(*) from TimeCLK where EmployeeId =a.EmployeeId and TimeCLK>'12:00' and TimeCLK<'17:00') as 早退次数
from EmployeeInfo a
select a.EmployeeId,a.EName,a.EDepartment,
sum(case when TimeCLK>'08:00' and TimeCLK<'12:00' then 1 else 0 end) as 迟到次数,
sum(case when TimeCLK>'12:00' and TimeCLK<'17:00' then 1 else 0 end) as 早退次数
from EmployeeInfo a left join TimeCLK b
on b.EmployeeId =a.EmployeeId
group by a.EmployeeId,a.EName,a.EDepartment
高手
看来SQL语句还有好多要学啊