select 单位,SUM(工资) AS 工资合计,
       SUM(CASE 性别 WHEN '男' THEN 工资 ELSE 0 END) AS 其中男性工资合计,
       SUM(CASE 性别 WHEN '女' THEN 工资 ELSE 0 END) AS 其中男性工资合计
from 表1 group by 单位

解决方案 »

  1.   

    select 单位,SUM(工资) AS 工资合计,
           SUM(CASE 性别 WHEN '男' THEN 工资 ELSE 0 END) AS 其中男性工资合计,
           SUM(CASE 性别 WHEN '女' THEN 工资 ELSE 0 END) AS 其中女性工资合计
    from 表1 group by 单位
      

  2.   

    declare @sql varchar(8000)
    set @sql='select 单位,sum(工资) as 工资合计'
    select @sql=@sql+',sum(case 性别 when '''+性别+''' then 工资 else 0 end) [其中'+工资+'性工资合计]'
    from (select distinct 性别 from 表1) a
    select @sql=@sql+' from 表1 group by 单位'
    --print @sql
    exec(@sql)
      

  3.   

    以上是动态SQL语句
    select 单位,SUM(工资) AS 工资合计,
           SUM(CASE WHEN 性别='男' THEN 工资 ELSE 0 END) AS 其中男性工资合计,
           SUM(CASE WHEN 性别='女' THEN 工资 ELSE 0 END) AS 其中男性工资合计
    from 表1 group by 单位
      

  4.   

    在 ms sqlserver 之中可以, 在orcale如可?