我之前曾问过类似的问题,但发布了一个新的问题,因为我不想混淆其他 成员,并且还有一列。有关更新列的SQL Server查询
我在找什么是更新列ItemActual
。这需要更新与ItemValue
的差异,最新的CurrentTime
对于相同的StartTime
(如果有的话)。
如果除当前行之外没有其他相同的StartTime
条目,它必须是ItemValue
本身。比较只能用于具有相同名称的项目。
对于例如Rownum 283,ItemActual = 347013
(因为没有其他行具有相同的StartTime
)。 这适用于行235为好,即ItemActual = 1086054.00
为190行,这就需要将664031.00 - 533023.00 (comparing with row 145) = 131008
但对于第10行,这将是532023.00
,由于同一项目用同StartTime
不早项。
Rownum Name ItemValue CurrentTime StartTime
283 ABC 347013.00 3/05/2012 16:01 29/04/2012 6:29
235 ABC 1086054.00 26/03/2012 14:05 7/03/2012 21:18
190 ABC 664031.00 13/02/2012 13:42 29/01/2012 6:39
145 ABC 533023.00 7/02/2012 14:01 29/01/2012 6:39
100 ABC 532023.00 7/02/2012 13:33 29/01/2012 6:39
55 ABC 532023.00 7/02/2012 12:52 29/01/2012 6:39
10 ABC 532023.00 7/02/2012 12:51 29/01/2012 6:39
310 DEF 351012.00 3/05/2012 16:01 29/04/2012 6:29
261 DEF 1339066.00 26/03/2012 14:05 7/03/2012 21:18
215 DEF 785034.00 13/02/2012 13:42 29/01/2012 6:39
170 DEF 620026.00 7/02/2012 14:01 29/01/2012 6:39
行145与行100相比,因为它具有相同的开始时间和相同的名称 – user1197981