declare @sql varcahr(3000)
set @sql=''
set @sql =@sql +',sum(case when 请求类型 ='''+请求类型+''' then 数量 end) as  ' + 请求类型 from (select distinct  请求类型 from tbQQSL ) aa
exec ('select '营业部' as 请求类型 '+ @sql from tbQQSL ')

解决方案 »

  1.   

    select sum(case 请求类型 when '02' then 数量 end) as [02]
          ,sum(case 请求类型 when '03' then 数量 end) as [03]
          ,sum(case 请求类型 when '04' then 数量 end) as [04]
          ,sum(case 请求类型 when '05' then 数量 end) as [05]
    from tbQQSL
      

  2.   

    如果你的请求类型也要算一列的话:
    请求类型
    营业部  
    select '营业部' as 请求类型
          ,sum(case 请求类型 when '02' then 数量 end) as [02]
          ,sum(case 请求类型 when '03' then 数量 end) as [03]
          ,sum(case 请求类型 when '04' then 数量 end) as [04]
          ,sum(case 请求类型 when '05' then 数量 end) as [05]
    from tbQQSL
      

  3.   

    select '营业部' as 请求类型
          ,sum(case 请求类型 when '02' then 数量 end) as [02]
          ,sum(case 请求类型 when '03' then 数量 end) as [03]
          ,sum(case 请求类型 when '04' then 数量 end) as [04]
          ,sum(case 请求类型 when '05' then 数量 end) as [05]
    from tbQQSL
      

  4.   

    如果你的请求类型不只你列出的,就用动态生成SQL语句的方法:declare @sql varchar(8000)
    set @sql='select ''营业部'' as 请求类型'
    select @sql=@sql+char(13)+
          ',sum(case 请求类型 when '''+请求类型+'02'' then 数量 end) as ['+请求类型+']'
    from(select distinct 请求类型 from tbQQSL) a
    set @sql=@sql+char(13)+'from tbQQSL'
    exec (@sql)