select 编号 , 姓名,1月,2月,3月,4月, 工资合计=1月+2月+3月+4月 from (select 编号 , 姓名,
sum(case when 月份='2003-01' then 工资 else 0 end) as 1月,
sum(case when 月份='2003-02' then 工资 else 0 end) as 2月,
sum(case when 月份='2003-03' then 工资 else 0 end) as 3月,
sum(case when 月份='2003-04' then 工资 else 0 end) as 4月
from tablename
group by 编号 , 姓名)a order by 编号 , 姓名

解决方案 »

  1.   

    select 编号,姓名,sum(case when Month(月份)=1 then 工资 else 0 end) as 1月,
                    sum(case when Month(月份)=2 then 工资 else 0 end) as 2月,
                    sum(case when Month(月份)=3 then 工资 else 0 end) as 3月,
                    sum(case when Month(月份)=4 then 工资 else 0 end) as 4月,
    工资合计=Sum(工资)  from tablename Group by 编号,姓名,Year(月份)
      

  2.   

    select 编号 , 姓名,
    sum(case when 月份='2003-01' then 工资 else 0 end) as 1月,
    sum(case when 月份='2003-02' then 工资 else 0 end) as 2月,
    sum(case when 月份='2003-03' then 工资 else 0 end) as 3月,
    sum(case when 月份='2003-04' then 工资 else 0 end) as 4月,
    sum(工资) as 工资合计
    from tablename
    group by 编号 , 姓名