【发布时间】:2011-04-26 01:01:40
【问题描述】:
我在 T-Sql 查询中有以下代码,我收到以下错误消息,但我不确定是什么导致了错误。我正在将 Pivot 语句编写为动态 b/c 我不知道将返回的列。
错误消息:消息 8156,级别 16,状态 1,第 9 行 为“数据透视表”多次指定了“标题 - 背书费/END8”列。
Temp 表 #FeeTotals 有 3 列 1) dwordrkey(唯一 id 键),2) Desc_Cd:费用描述,3) Total:货币列
DECLARE @PivotColumnHeaders VARCHAR(MAX)
SELECT @PivotColumnHeaders =
COALESCE(
@PivotColumnHeaders + ',[' + cast(Desc_Cd as varchar) + ']',
'[' + cast(Desc_cd as varchar)+ ']'
)
From #FeeTotals
DECLARE @PivotTableSQL NVARCHAR(MAX)
SET @PivotTableSQL = N'
Select *
From #FeeTotals
PIVOT
(
Sum(Total)
For Desc_Cd In (' + @PivotColumnHeaders + ')
)
As PivotTable'
Execute(@PivotTableSQL)
【问题讨论】:
-
为了调试,能不能把EXECUTE换成PRINT。然后您可以查看失败的实际语句。
标签: sql tsql pivot pivot-table