簡體   English   中英

SQL - 與同一列中的多個值進行比較?

[英]SQL - Comparing against multiple values in the same column?

好的,所以我正在嘗試編寫一些 SQL,但我不確定如何解決這種情況。 我有一張類似於下面的表格。 基本思想是我需要獲取處於“H”狀態的記錄(足夠簡單),但我需要排除處於“H”狀態並稍后轉移到“A”狀態的記錄日期。

所以理想情況下,結果應該只返回最后兩個記錄,ID 03 和 04。你們會怎么做?

ID     STATUS     STAT_DATE
01       A        05/01/2013
01       H        05/01/2012
02       A        12/01/2013
02       H        12/01/2012
03       H        03/01/2009
04       H        02/01/2008

你可以這樣做:

select *
from t t1
where status='H' and not exists(
    select * 
    from t t2 
    where t1.id=t2.id and t2.status='A' and t2.stat_date > t1.stat_date)

這將為您提供表 t 中 status='H' 的所有條目,其中 t 中沒有具有相同 ID、較晚日期和 status='A' 的條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM