1:
Select 存货编号,sum(case when 雇员号 = '01' then 销售数量 else 0 end) as 号01,
sum(case when 雇员号 = '02' then 销售数量 else 0 end) as 号02
from testdata group by 存货编号
2:
Select 存货编号,sum(case when 雇员号 = '01' then 销售数量 else 0 end) as 号01,
sum(case when 雇员号 = '02' then 销售数量 else 0 end) as 号02,
sum(销售数量) as 合计
from testdata group by 存货编号

解决方案 »

  1.   

    动态得到雇员号declare @sql varchar(8000)
    set @sql = 'select 存货编号'
    select @sql = @sql + ',sum(case 雇员号 when '''+cast(雇员号 as varchar(10))+''' then 销售数量 else 0 end) ['+cast(雇员号 as varchar(10))+']'
      from (select distinct 雇员号 from testdata) as a
    select @sql = @sql+',sum(销售数量) 合计 from testdata group by 存货编号'exec(@sql)
    go
      

  2.   

    pengdali(大力 V2.0) 不好意思,我上楼的回复是针对txlicenhe(不做技术高手)作者的,谢谢你的回复.
      

  3.   

    大力的就行。
    declare @sql varchar(8000)
    set @sql = 'select 存货编号'
    select @sql = @sql + ',sum(case 雇员号 when '''+cast(雇员号 as varchar(10))+''' then 销售数量 else 0 end) ['+cast(雇员号 as varchar(10))+']'
      from (select distinct 雇员号 from testdata) as a
    select @sql = @sql+',sum(销售数量) 合计 from testdata group by 存货编号'exec(@sql)
    go