2

わかりましたので、SQL を記述しようとしていますが、この状況に対処する方法がわかりません。以下のような表があります。基本的な考え方は、'H' ステータスにあるレコードを取得する必要がある (簡単です) が、'H' ステータスにあり、後で 'A' ステータスに移行したレコードを除外する必要があるということです。日にち。

したがって、理想的には、結果は ID 03 と 04 の最後の 2 つのレコードのみを返す必要があります。

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
4

1 に答える 1

1

あなたはこのようにすることができます:

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)

これにより、status='H' のテーブル t のすべてのエントリが得られます。t には、同じ ID、後の日付、および status='A' のエントリはありません。

于 2013-10-31T12:04:45.823 に答える