select Fid,A=Sum(case cid when 'A' then Nume else NULL end),
           B=Sum(case cid when 'B' then Nume else NULL end),
           C=Sum(case cid when 'C' then Nume else NULL end)
from table
group by FID
order by FID

解决方案 »

  1.   


    select FID
    ,A=max(case Cid when 'A' then cast(NUME as varchar) else '' end)
    ,B=max(case Cid when 'B' then cast(NUME as varchar) else '' end)
    ,C=max(case Cid when 'C' then cast(NUME as varchar) else '' end)
    from 表
    group by fid
      

  2.   

    select FID
    ,A=max(case Cid when 'A' then cast(NUME as varchar) else '' end)
    ,B=max(case Cid when 'B' then cast(NUME as varchar) else '' end)
    ,C=max(case Cid when 'C' then cast(NUME as varchar) else '' end)
    from 表
    group by fid
      

  3.   

    有发现一个新问题,
    就是 Cid 字段可能有好多,每次查询时,个数不定怎么办啊
      

  4.   

    select fid,
    A=max(case Cid when 'A' then cast(NUME as varchar) else '' end),
    B=max(case Cid when 'B' then cast(NUME as varchar) else '' end),
    C=max(case Cid when 'C' then cast(NUME as varchar) else '' end)
    from 表
    group by fid