단일 쿼리 실행에서 이전에 업데이트 된 값을 사용하여 레코드를 업데이트하려고합니다. 그것은 전체 사례지만, UPDATE 쿼리가 아닌 SELECT 쿼리입니다.이전에 업데이트 된 값을 사용하여 업데이트
표 재고 (간체)
Id Qty RunningQty ItShouldBeUpdatedTo InsteadItsUpdatedTo
1 200 0 200 200
2 300 0 500 300
3 400 0 900 400
4 100 0 1000 100
나의 현재 쿼리 다음 행을 업데이트하는 것이
UPDATE Inventory
SET RunningQty = ISNULL(A.RunningQuantity, 0) + Quantity
FROM Inventory I
OUTER APPLY
(
-- Take previous row RunningQty
SELECT TOP 1 RunningQty
FROM Inventory
WHERE Id < I.Id
ORDER BY Id DESC
) A
같은 것입니다, SQL Server는 이전에 업데이트 된 값을 사용하지.
참고 : 난 금액 실행 현재 행 수량 값을 추가 이전 행을 사용하여 계산할 수 있도록 상당히 큰 테이블이 아닌 최초의 행에서 산출된다.
어떻게해야할까요?
미리 감사드립니다.