我用:select distinct(a.name),(select count(b.sort) from table b where b.sort="1" and b.name=a.name),(select count(b.sort) from table b where b.sort="2" and b.name=a.name),(select count(b.sort) from table b where b.sort="3" and b.name=a.name)from mz_cf a group by name
不行,各位大哥救救我

解决方案 »

  1.   

    declare @sql varchar(8000)
    set @sql='select Name'
    select @sql=@sql+',sum(case Sort when '''+Sort+''' then 1 else 0 end) [Sort'+Sort+']'
    from (select distinct Sort from tablename) a
    select @sql=@sql+'  from tablename group by Name'
    --print @sql
    exec(@sql)
      

  2.   


    select name,sum(case Sort when 1 then 1 else 0 end) sort1,
    sum(case Sort when 2 then 1 else 0 end) sort2,
    sum(case Sort when 3 then 1 else 0 end) sort3,
    sum(case Sort when 4 then 1 else 0 end) sort4
    from tablename group by name
      

  3.   

    thanks sdhdy,thanks very much!!!!!!!!