一連の中間トランザクションと完了したトランザクションの間のタイムスタンプを格納するレコードのテーブルを持つデータベースがあります。
データベースに非常に奇妙な方法で保存されているため、問題が発生しています。
これを駅伝で例えてみましょう。このようにデータが記録されます。
RACE TIME RUNNER FINISHTIME
1 2011-09-28 11:27:01.437 1 2011-09-28 17:19:00.843
1 2011-09-28 12:35:33.427 2 2011-09-28 17:19:00.843
1 2011-09-28 12:36:15.270 3 2011-09-28 17:19:00.843
「時間」は、バトンが渡され、最後のランナーが終了した時間を示します。
したがって、個々のランナーの時間の背後にある計算は次のとおりです:
Time(Runner_n) = Time(Runner_n+1) - Time (Runner_n)
n+1 が記録されていないフィニッシュランナーを除く。彼らは得る:
Time(Runner_final) = FinishTime - Time(final)
新しいテーブルを作成し、カーソルを使用して各レースを反復処理して、Race、RunnerID、TimeCompleted のタプルを保存しようとしました。