2番目のレコードAFS_OH
列(ForecastID = 23)を、AFS_ToProduce
以下の最初のレコードの前の値(ForecastID = 22)で更新する必要があります。言い換えると、の2番目のレコード値ですAFS_OH = 307923
。
AFS_ToProduce < 0
また、テーブル全体のこれらの値を更新する必要があるため、WHERE
以下の句でわかるように、ForecastID番号はの基準に基づいて異なります。
以下の私のスクリプトは、次のレコードの代わりに同じレコード値を更新しています。ご協力いただきありがとうございます!
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