表mm:工号  姓名  岗位类别   是否受奖    单位         部门         金额
001   yhy    管理岗     1          公司管理   信息通讯中心   1000
001   yhy    生产岗     1          公司管理   信息通讯中心   1000现在要求汇总报表:
部门              总人数     管理受奖人数      生产受奖人数     金额
信息通讯中心       120           80                40          120000
现在能实现:select count(工号) as a,sum(金额) from mm group by 单位,部门主要是根据单位,部门来统计,现在要求分岗位类别,请问怎么处理?最好是一条sql语句,谢谢各位

解决方案 »

  1.   

    select count(工号) as a,sum(金额) from mm group by 单位,部门,岗位
      

  2.   

    select 单位, 部门,岗位,count(工号),sum(金额) 
    from mm 
    group by 单位,部门,岗位
      

  3.   

    group by 单位,部门,岗位
      

  4.   

    --建立测试环境
    create table mm(工号 varchar(5),姓名 varchar(10),岗位类别 varchar(20),
    是否受奖 bit,单位 varchar(10),部门 varchar(32),金额 int)
    insert into mm
    select '001','yhy','管理岗',1,'公司管理','信息通讯中心',1000
    union all
    select '001','yhy','生产岗',1,'公司管理','信息通讯中心',1000
    union all
    select '001','yhy','生产岗',1,'公司管理','信息通讯中心1',1000
    --代码
    select 部门,总人数=sum(1),管理受奖人数=sum(case when 岗位类别='管理岗' then 1 else 0 end),
    生产受奖人数=sum(case when 岗位类别='生产岗' then 1 else 0 end),sum(金额)
    from mm
    group by 部门
    --删除测试环境
    drop table mm
      

  5.   

    select 部门,总人数=sum(1),管理受奖人数=sum(case when 岗位类别='管理岗' then 1 else 0 end),
    生产受奖人数=sum(case when 岗位类别='生产岗' then 1 else 0 end),金额=sum(金额)
    //这里加个"金额=",
    from mm
    group by 部门
      

  6.   

    谢谢各位,顺便问一个问题:
    有一个考勤表:怎么将考勤状态在dbgrideh中显示为特别符号?比如:0显示+,1显示-,2显示#等
      

  7.   

    谢谢楼上的兄弟,我在我这里不行啊,我用的是oracle数据库
      

  8.   

    oracle用下方法:
    --建立测试环境
    create table mm(工号 varchar(5),姓名 varchar(10),岗位类别 varchar(20),
     是否受奖 char(1),单位 varchar(10),部门 varchar(32),金额 integer)
    insert into mm
    select '001','yhy','管理岗',1,'公司管理','信息通讯中心',1000 from dual
    union all
    select '001','yhy','生产岗',1,'公司管理','信息通讯中心',1000 from dual
    union all
    select '001','yhy','生产岗',1,'公司管理','信息通讯中心1',1000 from dual
    --代码
    select 部门,sum(1) 总人数, sum(decode(岗位类别,'管理岗', 1, 0 )) 管理受奖人数,
    sum(decode(岗位类别,'生产岗', 1, 0)) 生产受奖人数,sum(金额)
    from mm
    group by 部门
    ---结果:
    部门                                 总人数 管理受奖人数 生产受奖人数  SUM(金额)
    -------------------------------- ---------- ------------ ------------ ----------
    信息通讯中心                              2            1            1       2000
    信息通讯中心1                             1            0            1       1000