一个表查询 统计次数的问题
id name cardid time jinchu 这个是字段 表名 jc_table
1 111 111 2007-8-15 02:22:22 进
2 222 222 2007-8-15 02:22:22 出
3 111 111 2007-8-15 02:25:22 出
我想的到结果是
id name cardid 次数
1 111 111 2
2 222 222 1
------解决方案--------------------select id , name, cardid,count(*) as 次数
from jc_table
group by id , name, cardid
------解决方案--------------------select name ,cardid , count(*) 次数 from tb group by name ,cardid
------解决方案--------------------select identity(int,1,1) as id,a.* into # from (select name,cardid,count(*) from jc_table group by name,cardid) a
select * from #
------解决方案-------------------- select name,cardid,count(*) as 次数,min(id) as id
from jc_table
group by name,cardid
------解决方案--------------------借用一下!
如果改成如下:
id name cardid time status 这个是字段 表名 jc_table
1 111 111 2007-8-15 08:00:22 来
1 111 111 2007-8-15 13:300:22 迟到
2 222 222 2007-8-15 08:00:22 没来
2 222 222 2007-8-15 13:300:22 没来
3 111 111 2007-8-15 08:00:22 没来
3 333 333 2007-8-15 08:00:22 来
我想的到结果是
id name cardid status
1 111 111 来
2 222 222 没来
3 333 333 来
即 同一天的两次考勤中,有一次来了(包括迟到)算来,两次都没来的算没来!
表中记录一个月中,每人的考勤记录,要求统计每天每人的出勤情况。
请各位多多指点,谢谢楼住和各位!
------解决方案--------------------修改一下!
如果改成如下:
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),
carid varchar(10),
time datetime,
status varchar(10))
insert tb select 1, '111 ', '111 ', '2007-8-15 ', '来 '
union all select 1, '111 ', '111 ', '2007-8-15 ', '迟到 '