select s_ID,
sum(case s_Card when 'a' then s_Qty else 0 end) as a,
sum(case s_Card when 'b' then s_Qty else 0 end) as b,
sum(case s_Card when 'c' then s_Qty else 0 end) as c,
sum(case s_Card when 'd' then s_Qty else 0 end) as d,
from 表
group by s_ID

解决方案 »

  1.   

    select s_ID,
    sum(case s_Card when 'a' then s_Qty else 0 end) as a,
    sum(case s_Card when 'b' then s_Qty else 0 end) as b,
    sum(case s_Card when 'c' then s_Qty else 0 end) as c,
    sum(case s_Card when 'd' then s_Qty else 0 end) as d
    from 表
    group by s_ID
      

  2.   

    declare @s varchar(8000)
    set @s='select s_ID'select @s=@s+','+s_Card+'=sum(case s_Card when '''+s_Card+++''' then s_Qty else 0 end)' from 表 group by order by s_Cardset @s=@s+' from 表 group by s_ID order by s_ID'exec(@s)
      

  3.   

    select s_id,sum(case s_card when a then s_qty else 0 end) as a,sum(case s_card when b then s_qty else 0 end) as b,sum(case s_card when c then s_qty else 0 end) as c,sum(case s_card when d then s_qty else 0 end) as d from table group by s_id
      

  4.   

    各位大虾注意,a,b,c,d都是未知量,不能出现在SQL中的