我有以下數據代表進入我們中心並轉移到顧問(CSO)的呼叫流程。基於多行和多行數據提取數據
CallID Sequence Action Location Input NextLocation
1135 0 CallStart NULL NULL NULL
1135 1 MenuStart EFTPosHelpDesk NULL NULL
1135 2 KeyPress EFTPosHelpDesk 3 TransferCSO
1135 3 TransferEntry EFTPosHelpDesk NULL NULL
1135 4 TransferFlag NULL NULL NULL
1135 5 AccessNum NULL NULL NULL
1135 6 Transfer NULL NULL NULL
1135 7 Hangup NULL NULL NULL
我正在使用MS SQL Management Studio 2005來提取數據,但數據本身存儲在MS SQL 2000服務器上。
在數據庫中記錄了幾百萬個電話,我需要提取客戶被轉移到CSO的CallID。告訴我一個電話被轉移到一個CSO的目標數據是完全如下:
@Sequence 2 -> NextLocation = 'TansferCSO'
@Sequence 3 -> Action = 'TransferEntry'
@Sequence 4 -> Action = 'TransferFlag'
@Sequence 5 -> Action = 'AccessNum'
@Sequence 6 -> Action = 'Transfer'
@Sequence 7 -> Action = 'Hangup'
......它總是在序列中,但「序列」編號和「位置」,將一些電話改變平均可以跑50-70步,我們有100個IVR(位置)。
我是相當新的SQL,我試過使用FETCH和IF/ELSE但沒有成功。由於MS SQL2000服務器上的數據,ROW_NUMBER()將無法工作。
任何示例或建議將不勝感激。
即使初始序列號不可預測,操作模式是否始終出現在連續的序列號上? – HABO 2013-05-08 02:50:35
嗨,大家好。是的,它們是連續發生的,但是編號可以不同,例如NextLocation下的TransferCSO可能發生在序列33上,所以序列34到38將是我需要尋找正確「動作」的地方。 – CoderX71 2013-05-08 03:15:35
我覺得自己有五個'JOIN'。每個條件是先前的序列+ 1和下一個預期的操作。使用'CallId' /'Sequence'索引和'Action'可以提供同一天的性能。真正的技巧是容納足夠的污水來處理flukey記錄器。 – HABO 2013-05-08 03:55:53