2016-12-03 40 views
0

由於我不擅長編寫SQL查詢以便尋求幫助。SQL查詢以獲取跳過某些行處理的工作訂單

我有如下數據集

我需要編寫一個查詢來獲取所有跳過過程,轉移到下一個seq_no,EX的workorderid的:
workorderid = AW1其中有一條線「開」爲seq_no = 30和徑自 「完成」 爲seq_no = 40

最終結果集應如下

Workorderid 
----------- 
AW1 
AW3 

enter image description here

回答

2

一種方法簡單地使用條件彙總:

select workorderid 
from t 
group by workorderid 
having (max(case when status = 'Open' then seq_no end) < 
     max(case when status = 'Complete' then seq_no end) 
     ) 

也就是說,有沒有最後'Open''Complete',基於seq_no

+0

謝謝戈登 – shivareddy

0

這裏是另外一個使用EXISTS:

SELECT t1.workorderid 
FROM t t1 
WHERE t1.status = 'Open' 
AND EXISTS 
(SELECT 1 
FROM t t2 
WHERE t2.workorderid = t1.workorderid 
AND t2.seq_no > t1.seq_no 
AND t2.status = 'Complete') 
+0

謝謝kbball – shivareddy