1
我有這個腳本在我的透視表的左側和底部有總計, 我有'從字符串轉換日期和/或時間時轉換失敗' 。在第19行,但是這行代碼與轉換無關。 個人選擇工作正常,但如果他們將是聯盟他們得到這個錯誤。從字符串中轉換日期和/或時間時轉換失敗。當在sql server中使用union all時
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('[email protected] +')
) JerryHot
ORDER BY StartDate
SELECT * FROM #Pansamantala
UNION ALL
SELECT '''',''Grand Total'','[email protected] +', isnull(SUM([Grand Total]),0) FROM #Pansamantala
DROP TABLE #Pansamantala'
exec(@JerryPogi)
是的,這是我最近發現的。謝謝順便說一句,我應該投出開始日期和結束日期? – Dave
我不確定你的意思。第一列是好的,所以如果你保留第二列而不是'總共',那麼你的腳本應該工作。你是這個意思嗎? – rikitikitik
是多數民衆贊成在我什麼是我的朋友,我現在的問題是,我不能將兩個日期時間列轉換爲varchar,以便它不會影響「總計專欄」 – Dave