我需要使用下面第一条记录中的前一个值 (ForecastID = 22)更新第二条记录AFS_OH
列 (ForecastID = 23) 。AFS_ToProduce
换句话说,第二个记录值AFS_OH = 307923
。
此外,我需要更新整个表的这些值,因此我的 ForecastID 编号将根据AFS_ToProduce < 0
您将在WHERE
下面的子句中注意到的标准而有所不同。
我下面的脚本正在更新相同的记录值而不是以下记录。谢谢你的帮助!
ForecastID AFS_OH AFS_ToProduce
22 307923 -307923
23 0 316602
这是我的方法:
UPDATE FC_Test
SET AFS_OH = (AFS_ToProduce * (-1))
FROM FC_Test S3
INNER JOIN
(
SELECT S1.FORECASTID, S2.AFS_ToProduce AS AFS_OH
FROM FC_Test S1
LEFT OUTER JOIN
(
SELECT *
FROM FC_Test
) S2
ON S1.ForecastID = S2.ForecastID
)S4 ON S3.ForecastID = S4.ForecastID
WHERE AFS_ToProduce < 0