需求:我想查詢每個客戶在1-12月初的金額 并且以客戶的編碼為唯一識別符號,把12個月的查詢結果放在一張表上。
我現在的方法是:
1、我先是建了一張月份對應具體日期的表 ,取名為'月份對應日期表',A列為1,B列則為'2020-1-1'
2、回圈賦予變數@dt = 1 到 12的數值 ,通過@dt的值在'月份對應日期'表里查詢日期,然后查詢每個客戶在這個日期的金額。
現在問題是,我按照這種方式查詢到12個月對應日期每個客戶的結果資料,但是我不知道怎么把這12個月的資料也就是12列資料,放在一張表上,并且這12個月資料要與唯一ID黃金編碼相匹配。
代碼如下:
declare @dt INT
SET @dt =0
WHILE (@dt<12)
BEGIN
SET @dt =@dt+1
SELECT
dbo.MTD客戶明細表.黃金編碼, @dt AS 月份,
(SELECT 總權益 FROM dbo.匯總余額表 WHERE dbo.匯總余額表.日期 = (SELECT 日期 FROM dbo.期初日期 WHERE 月份 =@dt) AND dbo.匯總余額表.交易編碼 = dbo.MTD客戶明細表.黃金編碼 ) AS 金額
FROM dbo.MTD客戶明細表
END
結果:

如何將上面的12次回圈查詢結果整合成類似下圖所示的表:

uj5u.com熱心網友回復:
查出來的資料再加一列保存月份值,比如@dt=1的結果里,這一列固定為1,@dt=2的就固定為2,以此類推。然后把這個結果集,用pivot或者case when來行專列。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/250384.html
標籤:疑難問題
上一篇:MySQL 季度資料累加查詢疑問
下一篇:服務端回應超時的情況
