由於我不擅長編寫SQL查詢以便尋求幫助。SQL查詢以獲取跳過某些行處理的工作訂單
我有如下數據集
我需要編寫一個查詢來獲取所有跳過過程,轉移到下一個seq_no,EX的workorderid的:
workorderid = AW1其中有一條線「開」爲seq_no = 30和徑自 「完成」 爲seq_no = 40
最終結果集應如下
Workorderid
-----------
AW1
AW3
由於我不擅長編寫SQL查詢以便尋求幫助。SQL查詢以獲取跳過某些行處理的工作訂單
我有如下數據集
我需要編寫一個查詢來獲取所有跳過過程,轉移到下一個seq_no,EX的workorderid的:
workorderid = AW1其中有一條線「開」爲seq_no = 30和徑自 「完成」 爲seq_no = 40
最終結果集應如下
Workorderid
-----------
AW1
AW3
一種方法簡單地使用條件彙總:
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
。
這裏是另外一個使用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')
謝謝kbball – shivareddy
謝謝戈登 – shivareddy