日期:2014-05-16  浏览次数:20466 次

sql转换问题
本帖最后由 xiongxing318 于 2014-03-10 15:48:58 编辑
我现在有数据表A
AppId  Type  Total  Success  time
 8001   x     20      10      20140309
 8001   y     5        3      20140309
 8001   z     33      11      20140309
 8002   x     0        0      20140310
 8002   y     7        1      20140310
 8002   z     12      11      20140310

我要变成表B
AppId xTotal xSuccess yTotal  ySuccess  zTotal  zSuccess  time
8001   20      10      5        3         33      11      20140309
8002    0      0       7        1         12      11      20140309


怎么做。。这貌似就是一个行转列把。但是纠结了很久还是没搞出来。。是sql2008
------解决方案--------------------
select
  AppId,
  max(case when Type='x' then total else 0 end) as 'xTotal',
  max(case when Type='x' then Success else 0 end) as 'xSuccess',
..
  time
from 
  tb
group by
  AppId,time


动态的交给楼下了