SQL2000 行列互换

 create   table   A   (d   char(8),   
                                  sAcount   int,   
                                  pAcount   int,   
                                  gAcount   int   
                                    )   
      insert   into   a   values('04-12-6   ',100,50,50)   
      insert   into   a   values('04-12-8   ',100,70,130)   
      insert   into   a   values('04-12-9   ',98,28,70)   
      insert   into   a   values('04-12-12',110,60,50)   



declare   @s1   varchar(2000),@s2   varchar(2000),@s3   varchar(2000),@s4   varchar(2000),@s   varchar(8000)   
      set   @s1='select   ''sAcount'''   
      select   @s1=@s1+   ',['+rtrim(d)+']=max(case   d   when'''   +   rtrim(d)   +   '''   then   sAcount   else   null   end)'   from   (select   distinct   d   from   a   )b   
      set   @s1=   @s1   +   '   from     
      (select   d,sum(sAcount)   as   sAcount   from   a     
      group   by   d)c'   
      set   @s2='select   ''pAcount'''   
      select   @s2=@s2+   ',['+rtrim(d)+']=max(case   d   when'''   +   rtrim(d)   +   '''   then   pAcount   else   null   end)'   from   (select   distinct   d   from   a   )b   
      set   @s2=   @s2   +   '   from     
      (select   d,sum(pAcount)   as   pAcount   from   a     
      group   by   d)c'   
      set   @s3='select   ''gAcount'''   
      select   @s3=@s3+   ',['+rtrim(d)+']=max(case   d   when'''   +   rtrim(d)   +   '''   then   gAcount   else   null   end)'   from   (select   distinct   d   from   a   )b   
      set   @s3=   @s3   +   '   from     
      (select   d,sum(gAcount)   as   gAcount   from   a     
      group   by   d)c'   
      exec(@s1+   '   union   all   '+   @s2   +   '   union   all   '+   @s3)   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值