declare @s varchar(8000)
set @s=''
select @s=@s+',['+status+']=sum(case status when '''+status+''' then [sum] end)'
from 第二个表
exec('select style'+@s+' from 第一个表 group by style')

解决方案 »

  1.   

    请问邹建,不用变量不能做出来的嘛?感觉在SQL里用变量。。是不是很多余呢,好像不是该它做的事?还请多赐教
      

  2.   

    请问邹建,不用变量不能做出来的嘛?感觉在SQL里用变量。。是不是很多余呢,好像不是该它做的事?还请多赐教
      

  3.   

    可是最好还是在SQL里边。。用一个SQL实现比较合适吧?程序里处理倒是可以的。。
      

  4.   

    select style,sum([sum]),test2.status from test1 left join test2 on test1.status = test2.status group by style,test2.status
      

  5.   

    试试用
    select 
          style,
          sum(case status when '未处理' then [sum] else 0 end) as 未处理,
          sum(case status when '已经支付未收到' then [sum] else 0 end) as 已经支付未收到,
          sum(case status when '已经支付且收到' then [sum] else 0 end) as 已经支付且收到,
    from 表1 group by style