SQL 创建一个 有行转列的表 急!急!急!急!

SELECT T0.[U_Project], T1.[CardName], T0.[U_SalesCost]'价格',T0.[Code]'期间' 
FROM [dbo].[@A003_INVOICE1]  T0 left join OCRD T1 on T1.[U_Project]=T0.[U_Project]  这是 要的字段 和表。
原表:
                        T0.[U_Project]  T1.[CardName]  T0.[U_SalesCost]      T0.[Code]
                                                    1                    **                       价格               2016-01
                                                                2                    **                       价格               2016-02
                                                                ........
想把T0.[code] 和 T0.[U_SalesCost] 行变成列  
例如“ T0.[U_Project]  T1.[CardName]   2016-01  2016-02   2016-03 ”
                     1                     **              价格         价格      价格
                                             2                     **              价格         价格      价格
                                            ..........

图片说明结果这样的

 --行转列的静态方案一:CASE WHEN,兼容sql2000
select custid,
sum(case when YEAR(orderdate)=2002 then qty end) as [2002],
sum(case when YEAR(orderdate)=2003 then qty end) as [2003],
sum(case when YEAR(orderdate)=2004 then qty end) as [2004]
from orders
group by custid;
GO
--行转列的静态方案二:PIVOT,sql2005及以后版本
select *
from (select custid,YEAR(orderdate) as years,qty from orders) as ord
pivot(sum(qty) for years in([2002],[2003],[2004]))as p
GO

试试

看这个教程,然后选择最下面的递归递归
http://www.cnblogs.com/sammon/archive/2012/05/10/2494362.html