请大家帮忙, 高分求助一个复杂的SQL统计语句怎么写呢?
是关于刷卡, 根据刷卡纪录求工时的统计语句:
表格如下:
sitename dept ssno r_date in_time out_time
All 85 00016 2006-06-27 2006-6-27 8:00
All 85 00016 2006-06-27 2006-6-27 8:01
All 85 00016 2006-06-27 2006-6-27 8:18
All 85 00016 2006-06-27 2006-6-27 8:19
All 85 00016 2006-06-27 2006-6-27 10:23
All 85 00016 2006-06-27 2006-6-27 10:31
All 85 00016 2006-06-27 2006-6-27 12:03
All 85 00016 2006-06-27 2006-6-27 12:06
All 85 00016 2006-06-27 2006-6-27 12:44
All 85 00016 2006-06-27 2006-6-27 12:54
All 85 00016 2006-06-27 2006-6-27 12:55
All 85 00016 2006-06-27 2006-6-27 13:44
All 85 00016 2006-06-27 2006-6-27 17:31
All 85 00016 2006-06-27 2006-6-27 17:34
All 85 00016 2006-06-30 2006-6-30 8:33
All 85 00016 2006-06-30 2006-6-30 9:33
All 85 00016 2006-06-30 2006-6-30 10:43
All 85 00016 2006-06-30 2006-6-30 11:54
All 85 00016 2006-06-30 2006-6-30 12:53
All 85 00016 2006-06-30 2006-6-30 15:03
All 85 00016 2006-06-30 2006-6-30 16:58
All 85 00016 2006-06-30 2006-6-30 17:25
All 85 00016 2006-07-07 2006-7-7 8:13
All 85 00016 2006-07-07 2006-7-7 10:33
All 85 00016 2006-07-07 2006-7-7 11:51
All 85 00016 2006-07-07 2006-7-7 13:27
All 85 00016 2006-07-07 2006-7-7 13:27
All 85 00016 2006-07-07 2006-7-7 13:28
All 85 00016 2006-07-07 2006-7-7 16:31
All 85 00016 2006-07-07 2006-7-7 16:59
All 85 00016 2006-07-07 2006-7-7 17:17
现在想统计对于同一天的,同一场区内的员工的刷卡纪录,
首先去除,只有刷进入和只有刷出去的纪录。
对于有连续时间刷进入的纪录,取最小的进入时间,
对于有连续时间刷出去的纪录,取最大的出去时间, 取出这个样子的时间后,把数据合并到一行里面去
而并不是要取一天之内的最小的进入时间和最大的出去时间
这个要得到这个样子的结果:
sitename dept ssno r_date in_time out_time
All 85 00016 2006-06-27 2006-6-27 8:00 2006-6-27 10:31
All 85 00016 2006-06-27 2006-6-27 12:03 2006-6-27 12:44
All 85 00016 2006-06-27 2006-6-27 12:54 2006-6-27 17:34
All 85 00016 2006-06-30 2006-6-30 8:33 2006-6-30 11:54
All 85 00016 2006-06-30 2006-6-30 12:53 2006-6-30 17:25
All 85 00016 2006-07-07 2006-7-7 8:13 2006-7-7 16:31
All 85 00016 2006-07-07 2006-7-7 16:59 2006-7-7 17:17
语句应该怎么写好呢 ?
时间很紧急,
请大家帮我想想办法好吗? 谢谢
表格如下:
sitename dept ssno r_date in_time out_time
All 85 00016 2006-06-27 2006-6-27 8:00
All 85 00016 2006-06-27 2006-6-27 8:01
All 85 00016 2006-06-27 2006-6-27 8:18
All 85 00016 2006-06-27 2006-6-27 8:19
All 85 00016 2006-06-27 2006-6-27 10:23
All 85 00016 2006-06-27 2006-6-27 10:31
All 85 00016 2006-06-27 2006-6-27 12:03
All 85 00016 2006-06-27 2006-6-27 12:06
All 85 00016 2006-06-27 2006-6-27 12:44
All 85 00016 2006-06-27 2006-6-27 12:54
All 85 00016 2006-06-27 2006-6-27 12:55
All 85 00016 2006-06-27 2006-6-27 13:44
All 85 00016 2006-06-27 2006-6-27 17:31
All 85 00016 2006-06-27 2006-6-27 17:34
All 85 00016 2006-06-30 2006-6-30 8:33
All 85 00016 2006-06-30 2006-6-30 9:33
All 85 00016 2006-06-30 2006-6-30 10:43
All 85 00016 2006-06-30 2006-6-30 11:54
All 85 00016 2006-06-30 2006-6-30 12:53
All 85 00016 2006-06-30 2006-6-30 15:03
All 85 00016 2006-06-30 2006-6-30 16:58
All 85 00016 2006-06-30 2006-6-30 17:25
All 85 00016 2006-07-07 2006-7-7 8:13
All 85 00016 2006-07-07 2006-7-7 10:33
All 85 00016 2006-07-07 2006-7-7 11:51
All 85 00016 2006-07-07 2006-7-7 13:27
All 85 00016 2006-07-07 2006-7-7 13:27
All 85 00016 2006-07-07 2006-7-7 13:28
All 85 00016 2006-07-07 2006-7-7 16:31
All 85 00016 2006-07-07 2006-7-7 16:59
All 85 00016 2006-07-07 2006-7-7 17:17
现在想统计对于同一天的,同一场区内的员工的刷卡纪录,
首先去除,只有刷进入和只有刷出去的纪录。
对于有连续时间刷进入的纪录,取最小的进入时间,
对于有连续时间刷出去的纪录,取最大的出去时间, 取出这个样子的时间后,把数据合并到一行里面去
而并不是要取一天之内的最小的进入时间和最大的出去时间
这个要得到这个样子的结果:
sitename dept ssno r_date in_time out_time
All 85 00016 2006-06-27 2006-6-27 8:00 2006-6-27 10:31
All 85 00016 2006-06-27 2006-6-27 12:03 2006-6-27 12:44
All 85 00016 2006-06-27 2006-6-27 12:54 2006-6-27 17:34
All 85 00016 2006-06-30 2006-6-30 8:33 2006-6-30 11:54
All 85 00016 2006-06-30 2006-6-30 12:53 2006-6-30 17:25
All 85 00016 2006-07-07 2006-7-7 8:13 2006-7-7 16:31
All 85 00016 2006-07-07 2006-7-7 16:59 2006-7-7 17:17
语句应该怎么写好呢 ?
时间很紧急,
请大家帮我想想办法好吗? 谢谢
...全文
相关推荐
一个常用的报表统计SQL语句
在平常的系统开发中,我们经常会遇到类似下图的报表统计功能需求。
sql语句妙用,各种sql语句的详细用法与讲解
sql语句妙用,各种sql语句的详细用法与讲解 ,使得程序运行的更加流畅。主要针对一些高效sql语句的解释。
一个用来统计相同姓名人数的SQl语句
sql语句查询 表结构是这样: ID 姓名 性别 1 张三 男 2 王四 男 3 丽丽 女 4 张三 男 5 赵柳 男 6 高洁 男 7 王四 女 8 高洁 女 9 张三 女 怎么能用一条SQL语句查询出如下的结果 姓名 人员个数 男人数 女人数 包含ID 张三 3 2 1 1,4,9 王四 2 1 1 2,7 丽丽 1 0 1 3 高洁 2 1 1 6,8 赵柳 1 1 0 5 代码如下: SELECT * FROM (SELECT DISTINCT Name,Count(ID) as 人員個數, sum(case when Sex=’男’ then 1 else 0 end) as 男人
常用复杂sql语句
常用复杂sql语句.txt 常用复杂sql语句.txt 常用复杂sql语句.txt
单条SQL语句实现复杂逻辑几例
单条SQL语句实现复杂逻辑几例。本文简单明了,介绍了用单条SQL语句,就能实现复杂逻辑的例子。比较有用。


应用实例
