select sum(case when 身份类别='中层干部'
 then 1 else 0 end),部门  from 员工表
         group by 部门

解决方案 »

  1.   

    select 部门,sum(case when 身份类别='中层干部'
     then 1 else 0 end)as 人数  from 员工表
    group by 部门
      

  2.   

    select * from t left join ( select 部门名称,count(员工编号) from 员工表
                           where 身份类别=中层干部 group by 部门)yl 
                  on t.部门名称= yl.部门名称
      

  3.   

    select * from t left join ( select 部门名称,count(员工编号) from 员工表
                           where 身份类别=中层干部 group by 部门)yl 
                  on t.部门名称= yl.部门名称
      

  4.   

    哈哈,我搞定了,谢谢各位,应该是
    select 部门名称,(
              select count(*) 
              from 员工表 
              where (部门表.部门代码=员工表.部门代码)and
                    (身份类别=中层干部 )) as[人数]
    from 部门表
      

  5.   

    select 部门名称,(
              select count(*) 
              from 员工表 
              where (部门表.部门代码=员工表.部门代码)and
                    (身份类别=中层干部 )) as[人数]
    from 部门表以上结果只能在SQLServer2000下执行,我想在Oracle上应该怎么做
    才能得到以下结果
    部门     人数
     干部处     2
     人事部     0
     车间1      1
     车间2      3
     车间3      0
     工会       1
      

  6.   

    select 部门名称,count(*) as 人数
    from 部门表,( select * from 员工表 where 身份类别=中层干部 ) a
    where 部门表.部门代码=a.部门代码(+)
    group by 部门名称