一个表查询 统计次数的问题
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 ', '迟到 '
union all select 2, '222 ', '222 ', '2007-8-15 ', '没来 '
union all select 2, '222 ', '222 ', '2007-8-15 ', '没来 '
union all select 3, '333 ', '333 ', '2007-8-15 ', '没来 '
union all select 3, '333 ', '333 ', '2007-8-15 ', '来 '
select id,name,carid,status=(case when min(status)= '没来 ' then '没来 ' else '来 ' end)
from tb group by id,name,carid
drop table tb
--结果:
/*
id name carid status
----------- ---------- ---------- ------
1 111 111 来
2 222 222 没来
3 333 333 来
*/