0
我想更新每个团队的第一行后面的所有行。我想更新每个团队的第一行后的所有行
表名:测试
ID , Team , StartTime, EndTime, TotalTime
1....... A.........18:00.........20:00..........2:00
2....... B.........18:00.........20:00..........2:00
3........A.........18:00.........20:00..........2:00
4........F.........18:00.........20:00..........2:00
5........B.........18:00.........20:00..........2:00
UPDATE TEST SET StartTime = DateAdd(SECOND, - ProjectedTime * 60, EndTime)
所以在这里,我想更新的行3和行5(因为它们不是基于团队的第一条记录)
我如何实现这一目标?
只是为了想的那样,已经给出的答案是好的,如果一个团队有3条记录,你想记录#2,#3被相同的时间间隔改变,或者第三次迭代与第二次相比有所改变? –
是的。因此,在更改第3条记录时应使用第二条记录的结束日期时间。这是我仍然坚持的地方 – user3162979
您正在使用哪个SqlServer版本?从SqlServer2012开始,您拥有为此而构建的Lead/Lag窗口函数。在此之前,您需要使用Row_Number()来枚举CTE中的记录,然后执行偏移连接。 –