日期:2014-05-18  浏览次数:20484 次

一个表查询 统计次数的问题
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 ', '迟到 '