select 部门代码,
sum(case when 类别=1 then 1 else 0 end) 类别1人数,
sum(case when 类别=2 then 1 else 0 end) 类别2人数,
sum(支出1) 支出1合计,sum(支出2) 支出2合计,sum(支出3) 支出3合计  from t1 group by 部门代码

解决方案 »

  1.   

    --生成t2表
    select into t2 部门代码
      ,类别1人数=sum(case 类别 when 1 then 1 else 0 end)
      ,类别2人数=sum(case 类别 when 2 then 1 else 0 end)
      ,支出1合计=sum(支出1)
      ,支出2合计=sum(支出2)
      ,支出3合计=sum(支出3)
    from t1 group by 部门代码
      

  2.   

    --插入t2表
    insert into t2
    select 部门代码
      ,类别1人数=sum(case 类别 when 1 then 1 else 0 end)
      ,类别2人数=sum(case 类别 when 2 then 1 else 0 end)
      ,支出1合计=sum(支出1)
      ,支出2合计=sum(支出2)
      ,支出3合计=sum(支出3)
    from t1 group by 部门代码
      

  3.   

    select 部门代码
    ,(select count(人员编号) from t1 where 部门代码 = a.部门代码 and  类别=1 )类别1人数
    ,(select count(人员编号) from t1 where 部门代码 = a.部门代码 and  类别=2 )类别2人数
    ,sum(支出1) 支出1合计,sum(支出2) 支出2合计,sum(支出3) 支出3合计  
    from t1  a
    group by 部门代码
      

  4.   

    create table #a (部门代码 varchar(10),人员编号 varchar(10),类别 int,支出1 int,支出2 int,支出3 int)
    insert #a values('005','005001',    1,     20     ,30,     15)
    insert #a values('006','006021',    2 ,    10    , 54 ,    15)
    insert #a values('005','006051',    1  ,   20   ,  30  ,   15)
    insert #a values('014','014033',    2   ,  20  ,   14   ,  15)
    insert #a values('005','005001',    1    , 22 ,    30    , 15)
    insert #a values('005','005001',    2     ,20,     30     ,15)
    select 部门代码
    ,(select count(1) from #a where 部门代码 = a.部门代码 and  类别=1 )类别1人数
    ,(select count(1) from #a where 部门代码 = a.部门代码 and  类别=2 )类别2人数
    ,sum(支出1) 支出1合计,sum(支出2) 支出2合计,sum(支出3) 支出3合计  
    from #a  a
    group by 部门代码
    go
    drop table #a
      

  5.   

    谢谢各位,但我的T2表是已有的各单位的记录也是有的,只能用update命令来更新。
    如果用Update应如何写呢?
      

  6.   

    update t2 set 类别1人数=tem.类别1人数,类别2人数=tem.类别2人数,支出1合计=tem.支出1合计,支出2合计=tem.支出2合计
    ,支出3合计=tem.支出3合计 from 
    (select 部门代码
    ,(select count(1) from 你的表 where 部门代码 = a.部门代码 and  类别=1 )类别1人数
    ,(select count(1) from 你的表 where 部门代码 = a.部门代码 and  类别=2 )类别2人数
    ,sum(支出1) 支出1合计,sum(支出2) 支出2合计,sum(支出3) 支出3合计  
    from 你的表 a
    group by 部门代码) tem where tem.部门代码=t2.部门代码
      

  7.   

    update t2 set 类别1人数=tem.类别1人数,类别2人数=tem.类别2人数,支出1合计=tem.支出1合计,支出2合计=tem.支出2合计
    ,支出3合计=tem.支出3合计 from 
    (select 部门代码
    ,(select count(1) from 你的表 where 部门代码 = a.部门代码 and  类别=1 )类别1人数
    ,(select count(1) from 你的表 where 部门代码 = a.部门代码 and  类别=2 )类别2人数
    ,sum(支出1) 支出1合计,sum(支出2) 支出2合计,sum(支出3) 支出3合计  
    from 你的表 a
    group by 部门代码) tem where tem.部门代码=t2.部门代码