0

私は次の表を持っています

ID Name  Progress     Date
------------------------------
1  A1    First Stage  1/1/2013
2  A1    Second Stage 1/2/2013
3  A2    First Stage  1/1/2013
4  A2    Second stage 1/2/2013
5  A3    First Stage  1/2/2013
6  A1    Closed       1/5/2013

最終的に閉じられるものを除いて、それぞれの名前のステージを表示したいと思います。たとえば、これの出力は次のようになります。

ID Name  Progress     Date
------------------------------
3  A2    First Stage  1/1/2013
4  A2    Second stage 1/2/2013
5  A3    First Stage  1/2/2013

A1は最終的に閉じられるため、A1ではありません。

私のクエリ表示Select * from table where Progress not like 'Closed'には、その行を除くすべての結果が明らかに表示されます。

ありがとう

4

2 に答える 2

1

サブクエリを使用して、除外するすべての名前をフィルタリングします。

select distinct name from table where progress = 'Closed'

今、あなたのクエリでそれを使用してください:

select *
from table
where name not in (select distinct name from table where progress = 'Closed');

これがお役に立てば幸いです

于 2013-01-29T22:46:57.407 に答える
0
SELECT x.* 
  FROM my_table x 
  LEFT 
  JOIN my_table y 
    ON y.name= x.name 
   AND y.progress = 'closed' 
 WHERE y.id IS NULL;
于 2013-01-30T00:12:31.043 に答える