我有这个脚本,用于在我的数据透视表的左侧和底部进行总计,我收到了“从字符串转换日期和/或时间时转换失败”的错误。在第 19 行,但代码行与转换无关。个人选择工作正常,但如果他们将是 UNION 他们会得到这个错误。
DECLARE @sizenameS NVARCHAR (MAX)
SELECT @sizenameS = COALESCE(@sizenameS + ', ','') + QUOTENAME(SizeName)
FROM
( select DISTINCT SIZESET.SizeSetID, SizeName
from SIZESET
left join SHIPMENTSIZESET ON SIZESET.SizeSetID = SHIPMENTSIZESET.SizeSetID
left join SHIPMENTSCHED on SHIPMENTSCHED.ShipmentSchedID = SHIPMENTSIZESET.ShipmentSchedID
left join DESIGN on DESIGN.DesignID = SIZESET.DesignID
left join ARTICLE on ARTICLE.DesignID = DESIGN.DesignID where ArticleNo = 'EZT02'
)src2
ORDER BY SizeSetID
DECLARE @DownDownDown NVARCHAR (MAX)
SELECT @DownDownDown = COALESCE(@DownDownDown + 'ISNULL([' + CAST (SizeName AS VARCHAR) +'],0) + ', 'ISNULL([' + CAST(SizeName AS VARCHAR)+ '],0) + ')
FROM
( select DISTINCT SIZESET.SizeSetID, SizeName
from SIZESET
left join SHIPMENTSIZESET ON SIZESET.SizeSetID = SHIPMENTSIZESET.SizeSetID
left join SHIPMENTSCHED on SHIPMENTSCHED.ShipmentSchedID = SHIPMENTSIZESET.ShipmentSchedID
left join DESIGN on DESIGN.DesignID = SIZESET.DesignID
left join ARTICLE on ARTICLE.DesignID = DESIGN.DesignID where ArticleNo = 'EZT02'
)src3
ORDER BY SizeSetID
SET @DownDownDown = LEFT (@DownDownDown, LEN (@DownDownDown)-1)
DECLARE @ToTheLeft NVARCHAR(MAX)
SELECT @ToTheLeft = COALESCE(@ToTheLeft + ',ISNULL(SUM([' + CAST(SizeName AS VARCHAR)+']),0)', 'ISNULL(SUM([' + CAST(SizeName AS VARCHAR)+']),0)')
FROM
( select DISTINCT SIZESET.SizeSetID, SizeName
from SIZESET
left join SHIPMENTSIZESET ON SIZESET.SizeSetID = SHIPMENTSIZESET.SizeSetID
left join SHIPMENTSCHED on SHIPMENTSCHED.ShipmentSchedID = SHIPMENTSIZESET.ShipmentSchedID
left join DESIGN on DESIGN.DesignID = SIZESET.DesignID
left join ARTICLE on ARTICLE.DesignID = DESIGN.DesignID where ArticleNo = 'EZT02'
)src
ORDER BY SizeSetID
DECLARE @JerryPogi NVARCHAR (MAX)
SET @JerryPogi = 'SELECT *, ('+ @DownDownDown + ') AS [Grand Total] INTO #Pansamantala
FROM
(
select DISTINCT StartDate, EndDate, SizeName, Quantity
from SIZESET
left join SHIPMENTSIZESET ON SIZESET.SizeSetID = SHIPMENTSIZESET.SizeSetID
left join SHIPMENTSCHED on SHIPMENTSCHED.ShipmentSchedID = SHIPMENTSIZESET.ShipmentSchedID
left join DESIGN on DESIGN.DesignID = SIZESET.DesignID
left join ARTICLE on ARTICLE.DesignID = DESIGN.DesignID where ArticleNo = ''EZT02''
) JerryGwapo
PIVOT
(
SUM(Quantity)
FOR SizeName
IN('+@sizenameS +')
) JerryHot
ORDER BY StartDate
SELECT * FROM #Pansamantala
UNION ALL
SELECT '''',''Grand Total'','+@ToTheLeft +', isnull(SUM([Grand Total]),0) FROM #Pansamantala
DROP TABLE #Pansamantala'
exec(@JerryPogi)