一段考勤的SQL,9点以后算迟到,现在需要改成9点到9点半打卡的算迟到,9点半以后的算无薪事假,在不改动数据格式的情况如何改下班这段sql,谢谢select *,[早上]=case when 最小时间>convert(varchar(10),最小时间,120)+' 09:00:00' then '迟到' else '正常' end,
[下午]=case when 最大时间<convert(varchar(10),最小时间,120)+' 17:30:00' then '早退' else '正常' end
from
(select a.name,a.ssn,MIN(b.checktime) AS 最小时间,MAX(b.checktime) AS 最大时间
from userinfo a,checkinout b
where a.ssn like 'cd%'
and a.userid=b.userid
and CONVERT(varchar(100), checktime, 112) between 20100601 and 20100630
group by
a.name,a.ssn,CONVERT(VARCHAR(8),checktime,112))a
[下午]=case when 最大时间<convert(varchar(10),最小时间,120)+' 17:30:00' then '早退' else '正常' end
from
(select a.name,a.ssn,MIN(b.checktime) AS 最小时间,MAX(b.checktime) AS 最大时间
from userinfo a,checkinout b
where a.ssn like 'cd%'
and a.userid=b.userid
and CONVERT(varchar(100), checktime, 112) between 20100601 and 20100630
group by
a.name,a.ssn,CONVERT(VARCHAR(8),checktime,112))a
解决方案 »
- 同时将表A的三列更新到表B对应的三列
- SQL查询
- 谁能告诉我这种想法能实现嘛?
- 怎样对表中选择出来的数据排序?
- 关于Access查询的巨难问题,求各位大佬帮忙了
- 【请教】在win2k下装的SQLServer,在win2003下用,只用查询分析器,可以用,但问题是关键字没有变颜色,都是黑色.
- 怎样获取从本地数据库获取另一个数据库发送来执行的指令
- MS-SQL Server 和 Access 有何区别?
- 关于自动增长的主键问题
- 数据传输问题?
- 这个是别人写的存储,可是速度实在不敢恭维,帮看下哪里有问题吧
- select * from sysobjects where name=''与 select name='' from sysobjects
[早上]=case when 最小时间 between convert(varchar(10),最小时间,120)+' 09:00:00' and
convert(varchar(10),最小时间,120)+' 09:30:00' then '迟到'
when 最小时间>convert(varchar(10),最小时间,120)+' 09:30:00' then '无薪事假'
else '正常' end,
[下午]=case when 最大时间<convert(varchar(10),最小时间,120)+' 17:30:00' then '早退' else '正常' end
from
(select a.name,a.ssn,MIN(b.checktime) AS 最小时间,MAX(b.checktime) AS 最大时间
from userinfo a,checkinout b
where a.ssn like 'cd%'
and a.userid=b.userid
and CONVERT(varchar(100), checktime, 112) between 20100601 and 20100630
group by
a.name,a.ssn,CONVERT(VARCHAR(8),checktime,112))a