SQL中对临时表如何用 PIVOT 进行列转换 10

有数据库里有一个临时表#TEMPDBF,表内见下表想通过PIVOT将数据转换成42周43周44周45周46周47周上海219673856830652362421217方法... 有数据库里有一个临时表#TEMPDBF,表内见下表

想通过PIVOT将数据转换成
42周 43周 44周 45周 46周 47周
上海 2196 7385 6830 6523 6242 1217

方法一:
SELECT 42周,43周,44周,45周,46周,47周 FROM #TEMPDBF
PIVOT(SUM(TEU) FOR 周 IN (42周,43周,44周,45周,46周,47周)) t
【错误提示】: IN 后的括号里42周提示 【'(' 附近有语法错误。】

改成方法二:
SELECT 42周,43周,44周,45周,46周,47周 FROM #TEMPDBF
PIVOT(SUM(TEU) FOR 周 IN ([42周],[43周],[44周],[45周],[46周],[47周])) b
【错误提示】:【SUM(TEU) FOR 周】 中的【TEU】、【周】无效

求解决方法,谢谢
【临时表#TEMPDBF初始数据】
展开
 我来答
鬼谷子教主
2016-11-15 · TA获得超过2496个赞
知道大有可为答主
回答量:1996
采纳率:88%
帮助的人:568万
展开全部

1、跟是否临时表没有关系。

2、SELECT列表中的转出字段,也要加上[]

3、加上DQ字段

SELECT	DQ
    ,[42周]
    ,[43周]
        ,[44周]
   ,[45周]
   ,[46周]
   ,[47周]
FROM #TEMPDBF 
PIVOT( SUM(TEU) FOR 
周 IN ([42周], [43周], [44周], [45周], [46周],[47周]) 
) b
追问

按您的做法在本地成功了,我相应的在我要设计的远程数据库里使用,死活不行

表内容

运行结果

追答
远程库是MS SQL Server?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式