表a :
部门   员工名   打卡时间              卡id
DEPNAME PNAME   LTIME
a      张三     2007-1-15 9:20        001
a      张三     2007-1-15 10:20        001
a      张三     2007-1-15 18:30       001a      李四     2007-1-15 8:00        002
a      李四     2007-1-15 18:10       002b      赵五     2007-1-15 8:00        003
b      赵五     2007-1-15 8:00        003
……
需要得到每月份的统计:
部门   员工名   上班时间          下班时间          时长   
 a      张三     2007-1-15 9:20  2007-1-15 18:30  9:10
 a      李四     2007-1-15 8:20  2007-1-15 18:10  8:50

解决方案 »

  1.   

    select cardid,pname,max(ltime) as max1,min(ltime) as min1,hour(max(ltime)-min(ltime)) as hour from t_count where ..... group by cardidwhere 的后面自己写条件。
      

  2.   

    楼上的谢谢了
    但是如果加上下面几个条件该怎么办:
        1.上班时间是9:00 下班时间是17:30
        2.9:00以前的打卡算迟到 9:50之后的打卡算旷工
        3.如果9:50之前的打卡没有记录用"-"表示
    现在需要这种效果,该怎么写?
    部门   员工名     上班时间        迟到   矿工    下班时间            
     a      张三     2007-1-15 9:40   20     1     2007-1-15 18:30   
     a      李四     2007-1-15 8:20   20     0      2007-1-15 18:10   
     b      赵五     2007-1-15 8:00    0     0     2007-1-15 18:10