1.查找每个人每天最早和最晚的记录,2.并用最早和最晚的记录,与"09:00:00"和"18:00:00"做比较,计算出迟到或早退的分钟数.3.最后统计每个人每个月迟到和早退的次数和总的分钟数.
ID 姓名 编号 日期时间 签到/退
1549 陈佳 306 2006-12-20 12:39:00 上班签到
1550 陈佳 306 2006-12-20 12:40:00 上班签到
1551 陈佳 306 2006-12-20 13:42:00 上班签到
1552 陈佳 306 2006-12-20 15:40:00 下班签退
1553 孙小勇 503 2006-12-13 10:05:00 下班签退
1554 孙小勇 503 2006-12-20 11:46:00 上班签到
1555 孙小勇 503 2006-12-20 12:46:00 上班签到
1556 孙小勇 503 2006-12-20 12:43:00 上班签到
1557 孙小勇 503 2006-12-20 15:38:00 下班签退
1558 李琳 516 2006-12-6 14:43:00 上班签到
1559 李琳 516 2006-12-6 14:43:00 上班签到
1560 李琳 516 2006-12-6 14:43:00 上班签到
1561 李琳 516 2006-12-6 14:43:00 上班签到
1562 李琳 516 2006-12-7 12:13:00 上班签到
ID 姓名 编号 日期时间 签到/退
1549 陈佳 306 2006-12-20 12:39:00 上班签到
1550 陈佳 306 2006-12-20 12:40:00 上班签到
1551 陈佳 306 2006-12-20 13:42:00 上班签到
1552 陈佳 306 2006-12-20 15:40:00 下班签退
1553 孙小勇 503 2006-12-13 10:05:00 下班签退
1554 孙小勇 503 2006-12-20 11:46:00 上班签到
1555 孙小勇 503 2006-12-20 12:46:00 上班签到
1556 孙小勇 503 2006-12-20 12:43:00 上班签到
1557 孙小勇 503 2006-12-20 15:38:00 下班签退
1558 李琳 516 2006-12-6 14:43:00 上班签到
1559 李琳 516 2006-12-6 14:43:00 上班签到
1560 李琳 516 2006-12-6 14:43:00 上班签到
1561 李琳 516 2006-12-6 14:43:00 上班签到
1562 李琳 516 2006-12-7 12:13:00 上班签到
解决方案 »
- 如何用一个表count函数算出来的结果,修改另一个表的字段值
- 每次对nvarchar的列插入数据都只显示一个字母 -_-
- 求救!!!!!!!!!!!!!!!!!!sql查询!----------有经验者进!
- 我的SQL SERVER评估版过期了,听说替换一个文件就可以升级为正式版,请问有谁知道?
- 高手请进来帮忙,关于SQL参数的个数不确定,怎么写出比较通用的SQL语句
- SQL查询
- 请教一个批量更新数据库的问题
- sql查询语句求助
- SQL Server 2000中如何在image类型中存储图片?如何读取?(例子)----------------------------------------------
- 如何删除临时表?
- 关于截取字符串的问题!!!
- 多线程条件下,如何在触发器中判断插入数据的某个字段
select * from table1 where not exists (select id from table1 where id = a.id and 日期时间 < a.日期时间) as a最晚时间:
select * from table1 where not exists(select * from table1 where id = a.id and 日期时间 > a.日期时间) as a
select 姓名,DATEDIFF(minute,cast((convert(char(10),日期时间,120) + ' 09:00:00') as datetime),日期时间) as 迟到分钟 from table1 where not exists (select id from table1 where 姓名 = a.姓名 and 日期时间 < a.日期时间) as a早退分钟:
select 姓名,DATEDIFF(minute,日期时间,cast((convert(char(10),日期时间,120) + ' 18:00:00') as datetime),) as 迟到分钟 from table1 where not exists(select * from table1 where 姓名 = a.姓名 and 日期时间 > a.日期时间) as a
最早时间:
select * from table1 where not exists (select id from table1 where 姓名 = a.姓名 and 日期时间 < a.日期时间) as a最晚时间:
select * from table1 where not exists(select * from table1 where 姓名 = a.姓名 and 日期时间 > a.日期时间) as a