我试图发布完整的 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
Location,Date 是主键。我需要帮助生成 [AdjustedDirection] 列,计算如下:
对于第一行(对于每个位置,例如 site1、site2):由于没有要计算的前一行,AdjustedDirection = 第一行的方向。
之后,第二行 AdjustedDirection:它是第一行的 AdjustedDirection 加上第二行的偏移量。第三行 AdjustedDirection:第二行的 AdjustedDirection 加上第三行的偏移量。等等...
我认为这需要一个游标,但我不知道在多个类别(位置)上进行游标的语法和/或可能有不同的答案。我无法描述到达这一步需要多少步骤以及过程有多复杂。我已经接近尾声了,完全被困在这里!
如果有人知道如何填充这些 AdjustedDirection 值,请证明您的出色。谢谢!!
结果应如下所示(为间距截断日期,显示先前调整的方向,以便清楚地计算当前行 Adjusted 的计算方式):
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
谢谢!