日期:2014-05-18  浏览次数:20474 次

还是行列转的问题,如何用povit转两个列?



原数据如下:
userid type avg con
1 完成 36 2
2 完成 132 2
1 未完成 84 2
2 未完成 168 1

转换成

userid avg完成 avg未完成 con完成 con未完成
1  
2

现在我用max +case做出来了,

select a.userid 编号,
MAX(case type when '完成' then ave else null end ) 完成平均,
MAX(case type when '未完成' then ave else null end) 未完平均,
MAX(case type when '完成' then con else null end ) 完成合计,
MAX(case type when '未完成' then con else null end) 未完合计
from workdb
group by a.userid


如何用povit来做呢?我现在只能用povit转1列

------解决方案--------------------
探讨
原数据如下:
userid type avg con
1 完成 36 2
2 完成 132 2
1 未完成 84 2
2 未完成 168 1

转换成

userid avg完成 avg未完成 con完成 con未完成
1
2

现在我用max +case做出来了,
……

------解决方案--------------------
探讨
引用:

引用:

SQL code

select * into #a from tb pivot(max(avg)for type in(完成,未完成))a

select * into #b from tb pivot(max(con)for type in(完成,未完成))b

select userid,#a.avg完成,#a.avg未……