回 帖 发 新 帖 刷新版面

主题:求考勤统计问题(加分哦)

一个考勤表 有卡号帐号,和卡号对应的考勤时间如
ID      CardNo     Time
1        001       2005-12-1 7:50:00
2        001       2005-12-1 17:09:00
3        002       2005-12-1 6:50:00
......

我先统计出一天考勤人数。
SELECT COUNT(CardNo) AS Expr1                 
FROM ( SELECT DISTINCT CardNo
FROM 表
where  时间条件2005-12-1 00:00:00 到2005-12-1 23:59:59)
---------------
以上是可以统计出一天的考勤人数的,但我怎么才能统计出几天时间或者一个月的
总考勤人数呢?
难道一定要一天一天的统计,然后累加吗?求助兄弟们[em2]

回复列表 (共13个回复)

沙发

可以把WHERE里面改为:比如:where  时间条件2005-12-1 00:00:00 到2005-12-10 23:59:59
就是说从12-1到12-10的总数

板凳

没有那么容易的呀,我求的是考勤人数,因为考虑到一天当中有人刷多次卡,所以就用了distinct,这样统计出一天的考勤人数,如果超过一天的话,那就有相同的卡号在刷卡,那还是统计不出来的。

3 楼

*************这是你的语句,统计一天的没问题,多天就达不到目的**********
SELECT COUNT(CardNo) AS Expr1                 
FROM ( SELECT DISTINCT CardNo
FROM 表
where  时间条件2005-12-1 00:00:00 到2005-12-1 23:59:59)
******************************************************************
我的方法是转换日期格式 然后统计, 语句如下,你试试看:

SELECT COUNT(CardNo) AS Expr1                 
FROM  ( select CardNo,CONVERT(varchar(12) , Time, 111 ) as Time
        from 考勤表  
        where  时间条件2005-12-1 00:00:00 到2005-12-10 23:59:59))
******************************************************************


4 楼

到底要统什么?
是每天考勤人数
还是一段时间内考勤的人数(不重复)?
还是一段时间内考勤的人次?
SELECT COUNT(*) AS Expr1,CarNo    FROM 表
where  (时间条件2005-12-1 00:00:00 到2005-12-31 23:59:59)
Group By CarNo

5 楼

是一段时间内考勤的人数(不重复)
转换日期格式的目的是什么呀?
我现在的问题是:卡号第二天还要刷卡,
想要一个时间段内的总的考勤(总的刷卡数,如第一天刷卡30人,第二天刷卡28人,那总刷卡数就是58人。要这个数据的)
------------------------
而我现在只能先一天一天的统计,然后累加(很笨的方法)。不知道有没要更好的办法了~~~~,拜托兄弟们了~~~

6 楼

还是没有人帮忙看一下呀,
我只有用累加每天的刷卡人数的办法,然后循环天数,再累加,得出总的刷卡人数,很笨的方法~~~~~~

7 楼

昨天我就看了,除了累加我想不出有什么好的办法。

8 楼

**************************************
楼主,我3楼的方法不行么?


************************************

9 楼

3楼方法不行的。
我用累加的方法计算了,谢谢帮助了

10 楼

***********************************************************************
不好意思,3楼我的写法少了个distinct, 改好的语句如下:

SELECT COUNT(CardNo) AS Expr1                 
FROM  ( select DISTINCT CardNo,CONVERT(varchar(12) , Time, 111 ) as Time
        from 考勤表  
        where  时间条件2005-12-1 00:00:00 到2005-12-10 23:59:59))
******************************************************************

我来回复

您尚未登录,请登录后再回复。点此登录或注册