我有一張表格,用於跟蹤位置中的物品。由於該表由兩個單獨的系統供給,日期可以重疊。讓我們稱他們爲System1和System2。回顧一個以上的記錄滯後
我使用分區來檢查日期重疊時,但遇到錯誤記錄不是相鄰行時遇到障礙。即來自System2的第一條記錄存在於來自System1的記錄中,因此被丟棄,但System2中的第二條記錄要麼在System2中的最後一條記錄結束之前開始,要麼同樣在最後一條記錄中。
爲了解決這個問題,我試圖捕獲System1中的最後一個結束日期,因此我可以輕鬆地根據此值檢查我的日期。我的問題是我不太瞭解分區來做到這一點。我基本上需要對分區進行分區。主分區基於PartID,第二個分區基於SysID,或者甚至可以使用我猜測的Source。爲了使事情變得整潔,我將下面的示例數據中的唯一記錄ID更名爲一個數字ID。
當前代碼僅僅是一系列由ADTM
的樣本數據下令LEAD/LAG報表分區在PARTID的: 對於這個數據,我目前正在與正確識別單記錄*爲錯誤。帶**的那個是一個不明的錯誤,因爲它被來自System1的記錄3757871包含。我需要能夠將ID 6的日期與ID 4的日期進行比較,以便我可以識別該錯誤。
Source SysID PartID ID ADTM SDTM
System1 A8871247 1661181 1 2014-08-15 11:21 2014-08-15 11:35
*System2 1661181 1661181 2 2014-08-15 11:27 2014-08-19 11:04*
System1 A8871247 1661181 3 2014-08-15 11:35 2014-08-16 22:43
System1 A8871247 1661181 4 2014-08-16 22:43 2014-08-20 15:44
*System2 1661181 1661181 5 2014-08-19 11:04 2014-08-19 11:05*
**System2 1661181 1661181 6 2014-08-19 11:05 2014-08-20 15:30**
System2 1661181 1661181 7 2014-08-20 15:30 2014-08-20 15:44
System2 1661181 1661181 8 2014-08-20 15:44 2014-08-22 11:34
我的最終結果是ID 2,5,6和7將被丟棄,並且ID 8將具有它的ADTM更新爲ID 4的SDTM創建系統之間的無縫過渡。
基本上我需要的是MAX(SDTM) OVER(PARTITION BY PartID ORDER BY ADTM WHERE Source = 'System1')
我想確保我理解完整的目標,爲什麼ID 7不是錯誤?這是時間在ID 4的時代。 –
哎呀,你是對的。這也是一個錯誤。 – Matt
好的,謝謝,我還有一個問題:如果你有部分重疊(假設ID 9具有ADTM = 2014-08-22 11:30和SDTM = 2014-08-23 11:50),那麼這會被認爲是錯誤或您將SDTM更新爲先前非錯誤的最大ADTM(根據示例,2014-08-22 11:34)。 –