作者BoyGeo (没事)
看板Database
标题[SQL ] Pivot的应用
时间Mon Aug 22 11:36:48 2016
资料库名称: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://webptt.com/cn.aspx?n=bbs/Database/M.1471837011.A.71B.html
1F:→ BoyGeo: 已解决,感谢cutekid大力协助还实作给我看,大感谢 08/22 14:09