【发布时间】:2016-12-22 16:21:05
【问题描述】:
我有一个存储过程,它使用数据透视函数创建一个表(我们称之为表 A)。为了保持整洁,我创建了另一个过程,我希望将数据透视结果插入到表 A 中,但是插入到函数似乎不能与数据透视函数结合使用是否有人对如何工作有任何想法围绕这个?
此外,除了第二个过程的插入元素之外,这两个过程都可以正常工作。
脚本的枢轴元素如下:
INSERT INTO dbo.A
CAST([ColumnA] AS VARCHAR(500))
,ColumnB
,ColumnC
,ColumnD
,ColumnE
,Apr = IsNull([1],0)
,May = IsNull([2],0)
,Jun = IsNull([3],0)
,Jul = IsNull([4],0)
,Aug = IsNull([5],0)
,Sep = IsNull([6],0)
,Oct = IsNull([7],0)
,Nov = IsNull([8],0)
,[Dec] = IsNull([9],0)
,Jan = IsNull([10],0)
,Feb = IsNull([11],0)
,Mar = IsNull([12],0)
,YTD = IsNull([13],0)
From xx_CTE
PIVOT (
Sum(value)
For month in ([1],[2],[3],[4],[5],[6],[7],
[8],[9],[10],[11],[12],[13])
) AS Summary
对于上述我得到...
(受影响的 39318 行)
(2883 行受影响)
(受影响的 3616 行)消息 8152,级别 16,状态 14,程序 usp_sproc1,第 109 行字符串或二进制数据将被截断。这 语句已终止。
(受影响的 1 行)
任何帮助将不胜感激。
谢谢
杰米
【问题讨论】:
-
请发布所有代码,包括 CTE 定义。
-
您的插入语句失败,因为 A-E 列中的某些内容不适合您的表,值太长。您需要增加表格中文本列的大小,或者只需将这些列的最左边的字符插入到列定义长度。枢轴只是让您感到困惑。
标签: sql tsql pivot insert-into