我公司的人事管理表 HRMRAA (RAA079 退厂日期 RAA001 工号  RAA018 学历 RAA010 省份 RAA035 部门 RAA025 入职日期)
a.查询:查询在籍人员的各学历所占总人数的比例
结果格式:
学历    比例
大专 6%
职中 1%
……
b.查询来自四川、湖南、广东省的各男女人数
格式如下:
 省份       男     女 
四川      587   2587
 广东      258   1457c.查询各部门的在籍贯的人数.并在最后一行进行汇总(格式如下)
部门      人数
ZL       30
   SMS    100
   …
….
   总人数   8500d.在2011年度7月度的各部门的员工离职率(提示:7月度离职人员 / 7月末在人员在籍)
    部门    离职率
     ZL     0
     CW    0.02
     …

解决方案 »

  1.   

    --a.
    select raa018,ltrim(COUNT(*)*100./(select COUNT(*) from hrmraa))+'%' as 比例 from hrmraa
    --b.表中差性别
    select raa010,
    sum(case when 性别='男' then 1 else 0 end)男,
    sum(case when 性别='女' then 1 else 0 end)女
    from hrmraa where raa010 in('四川','湖南','广东')
    group by raa010
    --c
    select raa010,COUNT(*)人数 from hrmraa group by raa010
    union all
    select '总人数',COUNT(*) from hrmraa
    --d
    select raa035,SUM(case when convert(varchar(7),raa070,120)='2011-07' then 1 else 0 end)*1./COUNT(*)
    from hrmraa group by raa035
      

  2.   

    写一个C的不同的写法 :select isnull(raa010,'总人数'),COUNT(1)人数 from hrmraa group by raa010 with rollup
      

  3.   

    select
     raa035,
     cast(SUM(case when convert(varchar(7),raa070,120)='2011-07' then 1 else 0 end)*1./COUNT(*) as dec(18,2))---这里精确一下
    from
     hrmraa 
    group by
     raa035
      

  4.   


    --a查询
    select 学历,
           比例=count(1)/(select count(1) from HRMRAA)
    from HRMRAA group by 学历--b查询
    select 省份,
           [男]=sum(case when 性别='男' then 1 else 0 end),
           [女]=sum(case when 性别='女' then 1 else 0 end)
    from HRMRAA where 省份 in('四川','湖南','广东') group by 省份--c查询
    select 部门,
           人数=count(1)
    from HRMRAA group by 部门
    union all
    select '总人数'
       count(1)
    from HRMRAA