我有一个SQL表像这样
PV Area CouterParty
851 M010 Name1
561 M011 Name2
869 M012 Name3
...
我需要transpost它,使用T-SQL(不报告服务或其他任何东西),所以它看起来是这样的:
CounterParty M010 M011 M012 ....
Name1 851
Name2 561
Name2 869
问题是,我不知道有多少区号都会有,所以有可能是任何数量的列真。
任何想法如何,我可以做到这一点? 非常感谢畅想
你可以通过游标循环和一个临时表做到这一点。
选择所有的你区号,运行光标获取每行插入行到您的临时表中的需要紧密光标从临时表中选择
如果使用SQL Server 2005或最新的使用旋转功能
SELECT
CouterParty ,
[M010] ,
[M011],
[M012]
FROM ( SELECT
PV ,Area ,CouterParty
FROM TablesName AS T
) AS T1Temp PIVOT ( Sum(PV) FOR T1Temp.CouterParty IN ( [M010],
[M011],
[M012] ) ) As PivotTable