就是有两个表,一个是员工的表,里面有与员工的部门,一个是考勤表,里面记录是某员工的早中晚班的考勤情况,
有这样的sql语句吗?就是求某个部门下的所有的员工的早中晚班的记录总数employe表
id depid
work表
id employeid zaoban zhongban wanban 

解决方案 »

  1.   

    对不起,我弄错了,是这样的, 
    work表  
    id employeid ban ban字段可能是早中晚班,谢谢各位了
      

  2.   

    select count(*) from work t1 where t1.id in (select t2.id from employe where t2.depid = 'XXX');
      

  3.   

    那就
    select count(t1.ban) from work t1 where t1.id in (select t2.id from employe where t2.depid = 'XXX');
      

  4.   

    我要的是分别统计ban中三种情况的总数,guoxiaoshou2000说的只是统计三个班的总和,
      

  5.   

    select a.depid,count(b.id)
    from employe 1,work b
    where a.id=b.id
    group by a.depid
    这样可以吗?
      

  6.   

    那就
    select t1.ban, count(t1.ban) from work t1 where t1.id in (select t2.id from employe where t2.depid = 'XXX') group by t1.ban;
      

  7.   

    已经好了,谢谢各位了,这样的可以通过了
    SELECT a.depid, SUM(CASE WHEN bancid = 1 THEN 1 ELSE 0 END) AS banc1, 
          SUM(CASE WHEN bancid = 2 THEN 1 ELSE 0 END) AS banc2, 
          SUM(CASE WHEN bancid = 3 THEN 1 ELSE 0 END) AS banc3
    FROM t_Employe a LEFT JOIN
          t_workcheck b ON a.employeid = b.employeid
    GROUP BY a.depid
      

  8.   


    什么是ban字段可能是早中晚班?
    如果此人早中晚都上了
    字段的值如何写?
    还是说得分三行写?