a表中有幾年的銷售資料, 日期dt、金額amt, 我想匯出一個表如下。年份自動增加,不限定

uj5u.com熱心網友回復:
CREATE TABLE #t
(
日期 DATE,
金額 MONEY
)
INSERT INTO #t VALUES('2018-1-1',100)
INSERT INTO #t VALUES('2019-2-1',100)
INSERT INTO #t VALUES('2020-3-1',100)
DECLARE @filed VARCHAR(max)=''
DECLARE @sql VARCHAR(max)=''
SELECT @filed=@filed+','+QUOTENAME(年) FROM
(
SELECT YEAR(日期) AS 年,ROW_NUMBER() OVER(ORDER BY YEAR(日期)) AS id FROM #t
) a ORDER BY id
SET @sql='
SELECT * FROM
(
SELECT YEAR(日期) AS 年,MONTH(日期) AS 月,金額 FROM #t
) a
PIVOT
(
SUM(金額)
FOR 年 IN ('+stuff(@filed,1,1,'')+')
)b'
EXEC (@sql)
DROP TABLE #t
uj5u.com熱心網友回復:
我把資料抽到這個視圖中, 再執行DECLARE @filed VARCHAR(max)=''
DECLARE @sql VARCHAR(max)=''
SELECT @filed=@filed+','+QUOTENAME(年) FROM ( SELECT Yar AS 年,ROW_NUMBER() OVER(ORDER BY Yar) AS id FROM SalesMth) a ORDER BY id
SET @sql='SELECT * FROM (SELECT Yar AS 年,Mth AS 月,Amt FROM SalesMth) a PIVOT(SUM(Amt) FOR 年 IN ('+stuff(@filed,1,1,'')+'))b'
EXEC (@sql)
報以下錯誤: 再幫下,謝謝
訊息 8156,級別 16,狀態 1,第 1 行
多次為 'b' 指定了列 'Y2017'。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/228187.html
標籤:應用實例
下一篇:不知道有沒有寫對,求解答
