私は次のようなテーブルを持っています
id fulltank vehicle number
1 Yes 123
2 Yes 456
3 No 123
4 No 123
したがって、IDが3と4の行を取得したかったのです。つまり、すべてのレコードを「いいえ」で取得する必要がありfulltank
ます。
場合:
id fulltank vehicle number
1 Yes 123
2 Yes 456
3 No 123
4 No 123
5 Yes 123
6 No 123
7 No 123
8 No 123
9 Yes 456
次に、(特定の車両の)ID6,7,8の行を取得する必要があります。つまり、「はい」の後から最後に挿入された行まで「いいえ」で記録されます。
ユーザーは毎回、タンクを完全に満たすかどうかを選択します。完全に満たす場合はfulltank
「はい」として記録され、45または75などで満たす場合は「いいえ」として記録されます。ユーザーが完全に入力している場合(つまり、fulltank
「はい」の場合)、以前に作成/挿入された行のすべてのレコードを「いいえ」の値で取得する必要があります(つまり、最後以降のレコードのみ-fulltank
特定の車両の「はい」) 。
これは3つのステップに分けることができます。
クエリ:
select *
from test_table
where id between
(select max(id) from test_table where fulltank = 'Yes' and id < (select
max(id) from test_table where fulltank = 'No')) + 1
and
(select max(id) from test_table where fulltank = 'No')
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加