日期:2014-05-17  浏览次数:20420 次

■■■■■■■■■■■■■■■■■■About~~~~~~~~~~~行列转换
感谢各位师兄关注此贴

现有一个表需要行列转换,原表如下图:



希望得到的结果如下图



望师兄指点迷津
------解决方案--------------------
select * from Tb unpiovt (sumamount for year in([QF2006],[QF2007],[QF2008],[QF2009],[QF2010],[QF2011],[QF2012]))

------解决方案--------------------
引用:
SQL code
select * from Tb unpiovt (sumamount for year in([QF2006],[QF2007],[QF2008],[QF2009],[QF2010],[QF2011],[QF2012]))


早起的鸟儿有虫吃
顶一个+1
------解决方案--------------------
tanleittl,你前面两个写的都有问题,呵呵

;with t as
(
select 2 QF2006,4 QF2007,11 QF2008,17 QF2009,27 QF2010,57 QF2011,111 QF2012
)
select * from t unpivot(sumamount for year in([QF2006],[QF2007],[QF2008],[QF2009],[QF2010],[QF2011],[QF2012])) upvt
/*
sumamount   year
----------- --------------------------------------------------------
2           QF2006
4           QF2007
11          QF2008
17          QF2009
27          QF2010
57          QF2011
111         QF2012
*/