关于考勤统计的问题,没办法了,请高手给个思路
数据库为考勤明细记录表KQ12,包括:日期(RQ),时间(TIMES),员工工号(DGDH)   
 现员工是三班制,打卡有效时间分别为:   
                                  上班                                                                                                      下班 
 白班            7:30--8:30   (8:00-8:30为退到)                           16:00-16:30 
 中班            15:30--16:30   (16:00-16:30为退到)               24:00-0:30 
 晚班            23:30--0:30   (0:00-0:30为退到)                        8:00-8:30   
 每天打卡两次,其它时间打卡无效,打卡一次也无效.   
 如果有SQL存贮过程该怎样入手统计每人每月的出勤天数和退到时间?高手能不能给个思路?   
------解决方案--------------------从正常的上班考虑一天有3个上班时段(有的时候还有4个时段),结构如: 
     上午         下午        晚上          正班 加班  旷工  迟到  早退 
 --------------------------------------- 
 上班  下班   上班  下班   上班  下班         
 再就是班次设置,如,普通员工班次:上午、下午、晚上应该刷卡的时间,应正班多少,加班多少,刷卡间隔多少无效等设置。 
 功能复杂一点的还有班组排班,日历设置(国假,公司日历、民族假日...),请假登记、外出登记、其他登记等。 
 处理考勤是一件很复杂的过程。要先写好考勤处理流程。具体的过程,有点复杂,不是一时能说得清楚的。呵呵   
------解决方案--------------------我觉得,先得到每人每天的出勤结果,一个月的只要简单加总就可以了
------解决方案--------------------呵呵,考勤分析是一个比较大的问题。如果只是想实现上面的功能。应该比较简单,个人认为大致思路如下:  
 1.从排班表取员工的该天班次。确定上班,下班的打卡有效范围。 
 2.从打卡记录表内读出员工该天打卡记录,如果没有记录,则该天缺勤。 
 3.建立游标对打卡记录按时间先后循环,判断打卡是否在上班的有效范围内,如果是则判断是否退到。不是则判断是否在下班的有效范围内,在则判断是否早退,不在则继续找下一条打卡记录。注意,有效范围内有多次打卡则上班取最后一次有效打卡作为上班打卡,下班取最早一次有效打卡作为下班卡。 
 4。如果只有上班打卡或下班打卡均算缺勤。 
 其实这个只是最简单的情况的考勤,还有很多因素未考虑进去,比如说班段请假,调休,外勤等导致的打卡时间不规范,也应分析。