再提sql统计语句(请 潇洒老乌龟关注!)
上次我提了个统计语句的问题
是这样的:
从一个表中统计出每天没台终端的开关机状态。
表中主要包括:终端编号(mobile),(lasttime)时间,(runstatus)终端状态
等字段 ,无主键。
终端状态每天记录4次,即lasttime 记录同一天的四个时间段(如2007-8-24 08:45)。状态有三种(0 正常,2 数据无效,1 关机),其中,0和2 都算是开机,每天的四个时间段中有一次开机,这一天算是开机,四次都关机,算是关机。
要求统计出,一个时间段内每天没台终端的开关机状态。
后来简化为如下问题:
如果改成如下:
id name cardid time status 这个是字段 表名 jc_table
1 111 111 2007-8-15 08:00:22 来
1 111 111 2007-8-15 13:30:22 迟到
2 222 222 2007-8-15 08:00:22 没来
2 222 222 2007-8-15 13:30:22 没来
3 111 111 2007-8-15 08:00:22 没来
3 333 333 2007-8-15 13:30:22 来
我想的到结果是
id name cardid status
1 111 111 来
2 222 222 没来
3 333 333 来
即 同一天的两次考勤中,有一次来了(包括迟到)算来,两次都没来的算没来!
表中记录一个月中,每人的考勤记录,要求统计每天每人的出勤情况。
后来老乌龟同志帮我解决了
如下:
create table tb(id int, name varchar(10) , cardid varchar(10),time datetime,status varchar(10))
insert into tb values(1, '111 ', '111 ', '2007-8-15 08:00:22 ', '来 ')
insert into tb values(1, '111 ', '111 ', '2007-8-15 13:30:22 ', '迟到 ')
insert into tb values(2, '222 ', '222 ', '2007-8-15 08:00:22 ', '没来 ')
insert into tb values(2, '222 ', '222 ', '2007-8-15 13:30:22 ', '没来 ')
insert into tb values(3, '111 ', '111 ', '2007-8-15 08:00:22 ', '没来 ')
insert into tb values(3, '333 ', '333 ', '2007-8-1513:30:22 ',