私は以下のように生徒のパフォーマンスを測定テーブルstudent
私のDB内を持っている:私は持っている私のテーブルを更新したいは、どのように、同じテーブルに以前のデータに基づいて、SQLテーブルを更新する
ID TestDate PerformanceStatus (PS)
1 15/03/2016 0
1 01/04/2016 2
1 05/05/2016 1
1 07/06/2016 1
2 15/03/2016 0
2 01/04/2016 2
2 05/05/2016 1
2 07/06/2016 3
2 23/08/2016 1
新しい列PreviousPerformanceStatus。 注: このPreviousPerformanceStatusはperformanceStatusに基づいて計算されては以下のように、監視対象TestDate前に記録performanceStatusがない場合、私はPreviousPerformanceStatus = PerformanceStatus
ID TestDate PS PreviousPerformanceStatus
1 15/03/2016 0 0
1 01/04/2016 2 0
1 05/05/2016 1 2
1 07/06/2016 1 1
2 15/03/2016 0 0
2 01/04/2016 2 0
2 05/05/2016 1 2
2 07/06/2016 3 1
2 23/08/2016 1 3
がどのように私は私のSQLテーブルを更新しますようにしたいですか?私は参加する必要がありますか?おかげさまで
ロジックが明確でない(または誤っている可能性があります)。ルールが何であるか説明できますか? –
ヒントを紹介します。まず、結果を返すクエリ(SELECT文)を記述します。そして、はい、ジョイン操作は、結果を達成するための1つの方法です。また、相関サブクエリを使用することもできます。いったんSELECTステートメントがあれば、それをUPDATEステートメントに変換することができます。 – spencer7593
例としてID = 1のstudentを使ってみましょう。 previousPerformanceStatusは、 "以前の"テスト日付のPerformanceStatusに基づいて計算されます。したがって、TestDate = 01/04/2016の場合、TestDate = 15/03/2016のデータを使用します。ただし、以前のデータが見つからない場合は、PerformanceStatus –