2015-10-28 16 views
-1

我目前得到的數據集看起來像這樣以前錄製

-------------------------------------------------------------------- 
|  Type_ID | component | timestamp    | status | 
------------------------------------------------------------------- 
|  52  |  G1  |Aug 25, 2014 9:10:47.0 AM | IN  | 
|  53  |  G1  |Aug 27, 2014 11:11:29.0 AM| OUT | 
|  58  |  G1  |Aug 27, 2014 11:11:29.0 AM| OUT | 
|  53  |  G1  |Aug 27, 2014 11:11:29.0 AM| OUT | 
|    |  G1  |Aug 27, 2014 11:11:29.0 AM| GEN | 
|  52  |  G2  |Aug 28, 2014 11:11:29.0 AM| IN  | 
|  52  |  G1  |Aug 29, 2014 11:11:29.0 AM| IN  | 
|    |  G2  |Aug 29, 2014 12:11:29.0 AM| GEN | 
-------------------------------------------------------------------- 

------------------------------------------------------------------------------------------------------------------------------ 
|  Type_ID | component | timestamp    | status | Type_Id | component | timestamp    | status | 
------------------------------------------------------------------------------------------------------------------------------- 
|    |  G1  |Aug 27, 2014 11:11:29.0 AM | GEN | 52 | G1  |Aug 25, 2014 9:10:47.0 AM | IN | 
|    |  G2  |Aug 29, 2014 12:11:29.0 AM | GEN | 52 |  G2 |Aug 28, 2014 11:11:29.0 AM| IN | 

因此,基於現狀的,我想獲得的TYPE_ID'以前的記錄,採用LAG都試過了,但無法根據STATUS = IN動態獲取了此前的紀錄

數據庫:SAP HANA, SQL將是有益的

+0

WT ......如果問題涉及到HANA,你是否用mysql標記了這個? – vwegert

+0

@vwegert使用mysql,我將能夠改變我的代碼的一部分到我的需要,它不需要具體。 不管怎樣,感謝您通過降級問題給予的幫助 – abhishekdesai

回答

0
SELECT *, LAG(TYPE_ID) OVER (ORDER BY TIMESTAMP), LAG(STATUS) OVER (ORDER BY TIMESTAMP), LAG(TIMESTAMP) OVER (ORDER BY TIMESTAMP) FROM TAB 
WHERE STATUS IN ('IN') 
ORDER BY TIMESTAMP; 

首先,我們將消除填寫不需要的記錄並在新的結果集上使用滯後。