データと変換について説明するために完全な SQL コードを投稿しようとしましたが、ここには投稿されませんでした。簡単に言えば、次のようなデータテーブルになります。
Location Date Direction PreviousDirection Offset
site1 2013-07-22 11:30:45.000 302 302 0
site1 2013-07-22 11:31:45.000 322 302 20
site1 2013-07-22 11:32:45.000 9 322 47
site1 2013-07-22 11:33:45.000 9 9 0
site1 2013-07-22 11:34:45.000 0 9 -9
site2 2013-07-22 11:30:45.000 326 326 0
site2 2013-07-22 11:31:45.000 2 326 36
site2 2013-07-22 11:32:45.000 2 2 0
site2 2013-07-22 11:33:45.000 2 2 0
site2 2013-07-22 11:34:45.000 2 2 0
場所、日付が主キーです。次のように計算された [AdjustedDirection] 列を生成する助けが必要です。
最初の行 (サイト 1、サイト 2 などの各場所): 計算する前の行がないため、AdjustedDirection = 最初の行の方向。
その後、2 行目の AdjustedDirection: 1 行目の AdjustedDirection に 2 行目のオフセットを加えたものです。3 行目の AdjustedDirection: 2 行目の AdjustedDirection に 3 行目のオフセットを加えたものです。等々...
これにはカーソルが必要だと思いますが、複数のカテゴリ (場所) でカーソルを実行するための構文がわからないか、別の答えがあるかもしれません。このステップにたどり着くまでに、いくつのステップがあり、プロセスがどれほど複雑であったかを説明することはできません。私は終わりに近づいていて、ここで完全に立ち往生しています!
これらの AdjustedDirection 値を設定する方法を知っている人がいる場合は、あなたの素晴らしさを証明してください。ありがとう!!
結果は次のようになります (間隔を空けるために日付が切り捨てられ、現在の行の調整済みの計算方法を明確にするために以前に調整された方向が示されています)。
Location Date Direction Offset PrevAdjDirection AdjustedDirection
site1 11:30:45.000 302 0 302 302
site1 11:31:45.000 322 20 302 322
site1 11:32:45.000 9 47 322 369
site1 11:33:45.000 9 0 369 369
site1 11:34:45.000 0 -9 369 360
site2 11:30:45.000 326 0 326 326
site2 11:31:45.000 2 36 326 362
site2 11:32:45.000 2 2 362 362
site2 11:33:45.000 2 2 362 362
site2 11:34:45.000 2 2 362 362
ありがとう!