一个表有以下字段
用户ID,用户名称,部门ID,部门名称,考勤类型,打卡日期,怎么统计每个月每个人的考勤,考勤类型包括
0 正常,1 迟到,2 早退,3 缺勤

解决方案 »

  1.   


    select 用户ID,
    sum(case when 考勤类型=0 then 1 else 0 end) '正常',
    sum(case when 考勤类型=1 then 1 else 0 end) '迟到',
    sum(case when 考勤类型=2 then 1 else 0 end) '早退',
    sum(case when 考勤类型=3 then 1 else 0 end) '缺勤'
    from tab
    group by 用户ID
      

  2.   

    楼上正解,我再补充下SELECT username,LEFT(rq,7),
    SUM(CASE WHEN type=0 THEN 1 ELSE 0 END) AS '正常' ,
    SUM(CASE WHEN type=1 THEN 1 ELSE 0 END) AS '迟到' ,
    SUM(CASE WHEN type=2 THEN 1 ELSE 0 END) AS '早退' ,
    SUM(CASE WHEN type=3 THEN 1 ELSE 0 END) AS '缺勤' 
    FROM dbo.userkaoqing
    GROUP BY username,LEFT(rq,7)