我有一个像这样的SQL表
PV Area CouterParty 851 M010 Name1 561 M011 Name2 869 M012 Name3 ...
我需要转发它,使用T-SQL(不报告服务或其他任何东西),所以它看起来像这样:
CounterParty M010 M011 M012 .... Name1 851 Name2 561 Name2 869
问题是我不知道我会有多少区号,所以真的可以有任意数量的列。
我有什么想法可以做到这一点?万分感谢
答案 0 :(得分:4)
您必须执行Dynamic CrossTab,请查看以下文章:
答案 1 :(得分:0)
您可以通过游标循环和临时表来完成此操作。
选择所有区号, 为每个获取的行运行游标 根据需要将行插入临时表 关上你的光标 从临时表中选择
答案 2 :(得分:0)
如果您使用SQL Server 2005或最新的
,请使用pivot功能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