[SQL ] Pivot的應用

作者: BoyGeo (沒事)   2016-08-22 11:36:48
資料庫名稱:MS SQL
資料庫版本:2005
內容/問題描述:
各位前輩大家好,我有一個關於Pivot的應用想要請教大家
我想要應用客戶的訂單週期去算下次的預估交易時間
我的想法是a.去抓某客戶的最近三筆訂單成立時間
b.PIVOT轉成橫式算出交易週期
c.最後一筆訂單加上交易週期算出下次預估交易時間
目前a的部分已經可以抓出來了,SQL語法如下
SELECT T1.[CardCode],T1.[CardName],T1.[DocDate] FROM ORDR T1
WHERE ( SELECT COUNT(*) FROM ORDR
WHERE [CardCode] = T1.[CardCode] and [DocNum] >= T1.[DocNum]
) <= 5
ORDER BY [CardCode],[DocNum] ASC
輸出結果類似如下:
客戶代碼 客戶名稱 交易日期
ABC123 大同科技 2016-05-10
ABC123 大同科技 2016-06-12
ABC123 大同科技 2016-07-15
DEF456 世界實業 2015-06-05
DEF456 世界實業 2015-12-10
DEF456 世界實業 2016-03-12
GHI789 華連化工 2016-03-01
GHI789 華連化工 2016-05-01
希望能用PIVOT轉成如下格式
客戶代碼 客戶名稱 交易日1 交易日2 交易日3
ABC123 大同科技 2016-05-10 2016-06-12 2016-07-15
DEF456 世界實業 2015-06-05 2015-12-10 2016-03-12
GHI789 華連化工 2016-03-01 2016-05-01 NULL
但是我不太懂PIVOT如何應用,想要請教各位前輩要如何轉成如上所需橫式格式
最終希望格式能如下
客戶代碼 客戶名稱 最後交易日 交易週期 預估下次交易日
ABC123 大同科技 2016-07-15 33 2016-08-17
DEF456 世界實業 2016-03-12 141 2016-07-30
GHI789 華連化工 2016-05-01 61 2016-07-01
應該還會有交易不滿三筆時,最後交易日要怎麼抓,不要抓NULL
然後怎麼正確算出週期的問題
先請教如何PIVOT轉橫是後續我再來試試看好了,多謝各位指教
作者: BoyGeo (沒事)   2016-08-22 14:09:00
已解決,感謝cutekid大力協助還實作給我看,大感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com