私は説明するのは比較的簡単ですが(私のやや限られたスキルを踏まえて)、SQLクエリを書くのは難しいです。 1は、私が選んだの例のようなものから、想像のとおりexam_no
とdate
は必ずしも関連していないことを連続した値を含むトリッキーなSQLクエリ
exam_no | name | surname | result | date
---------+------+---------+--------+------------
1 | John | Doe | PASS | 2012-01-01
1 | Ryan | Smith | FAIL | 2012-01-02 <--
1 | Ann | Evans | PASS | 2012-01-03
1 | Mary | Lee | FAIL | 2012-01-04
... | ... | ... | ... | ...
2 | John | Doe | FAIL | 2012-02-01 <--
2 | Ryan | Smith | FAIL | 2012-02-02
2 | Ann | Evans | FAIL | 2012-02-03
2 | Mary | Lee | PASS | 2012-02-04
... | ... | ... | ... | ...
3 | John | Doe | FAIL | 2012-03-01
3 | Ryan | Smith | FAIL | 2012-03-02
3 | Ann | Evans | PASS | 2012-03-03
3 | Mary | Lee | FAIL | 2012-03-04 <--
注:
は、私たちはこの1つのような表があるとします。最新の試験(exam_no
= 3)(
John Doe
、
Ryan Smith
と
Mary Lee
)失敗したすべての学生を見つけることから
- :次のように
さて、私が行う必要があるクエリがあります。
- これらの生徒のそれぞれについて、連続して失敗した試験のバッチの最初の日付が見つかります。それを置くもう1つの方法は、これらの生徒のそれぞれが、最後の合格試験の後に最初に失敗した試験の日付を見つけることです。 (テーブルの矢印を見てください)。
結果の表には、このようなものでなければなりません:どのように私は、このようなクエリを実行することができます
name | surname | date_since_failing
------+---------+--------------------
John | Doe | 2012-02-01
Ryan | Smith | 2012-01-02
Mary | Lee | 2012-03-04
?
ありがとうございます。
他の読者:彼が「MySQL」というタグをつけていることをご了承ください –
result = 'FAIL'で同じテーブルに参加し、日付の高いものから選択することができます。何を試しましたか? – Jocke
「*最新の試験*」はどういう意味ですか?最新の日付の試験ですか? – eggyal