[SQL ] Pivot的應用

看板Database (資料庫)作者 (沒事)時間8年前 (2016/08/22 11:36), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
資料庫名稱: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轉橫是後續我再來試試看好了,多謝各位指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.247.98 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1471837011.A.71B.html

08/22 14:09, , 1F
已解決,感謝cutekid大力協助還實作給我看,大感謝
08/22 14:09, 1F
文章代碼(AID): #1NkdDJSR (Database)
文章代碼(AID): #1NkdDJSR (Database)