动态SQL UNPIVOT和Select INTO临时表

时间:2015-10-23 09:47:28

标签: sql-server tsql sql-server-2005 dynamic-sql

我知道动态SQL和插入到临时表中有一些问题,但我找不到与我的特定问题完全匹配的问题。

我在## tmp的52列中有数据,我需要总计这些并存储在## tmp2中。

注意:如果删除第一个,语法工作正常line

 select * into ##tmp2 from

"选择进入"我有问题!我当前的动态查询提供了以下语法,但我无法使其工作。目前在最初"来自"之后的开放式括号没有匹配的结束括号。

我已经为决赛")"尝试了各种职位。但得到一个混合物

Incorrect syntax near ')' -- if placed at the end of the statement
Invalid column name 'wk' -- if added as  "from ##tmp) onto the second from"
Incorrect syntax near the keyword 'group'. -- if added after ")) as U"

这是当前的语法

select * into ##tmp2 from(
select x,y,sum(wk) as mysum  from ##tmp
  unpivot (wk for nwk in ([1],[2],[3],[4],[7],[8],[9],[10],[11],[12],[13],   [14],[15],[16],
[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[32],[33],[34],
[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[48],[49],[50],[51],[52]))
 as u  group by x,y

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用:

select x,y,sum(wk) as mysum 
into ##tmp2 
from ##tmp 
unpivot (wk for nwk in ([1],[2],[3],[4],[7],[8],[9],[10],[11],[12],[13], [14],[15],[16], [17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[32],‌​[33],[34], [35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[48],[49],[50],‌​[51],[52])) as u 
group by x,y