, Original_Table
는 UPDATE
문UPDATE는
WITH temp AS (
SELECT
ROW_NUMBER() over (partition by x order by y) row_num, x, z
FROM Original_Table)
UPDATE temp set z = a + (select ISNULL(SUM(a),0) from temp A where A.x= temp.xand A.row_num < temp.row_num)
업데이트하지만 도착 전 단지 다음
CREATE TABLE
#temp
(
row_num INT NOT NULL ,
x INT NOT NULL,
a DECIMAL NOT NULL ,
z DECIMAL NULL
);
insert into #temp
SELECT
ROW_NUMBER() over (partition by x order by y) row_num, x, z
FROM Original_Table
UPDATE temp set z = a + (select ISNULL(SUM(a),0) from temp A where A.x= temp.xand A.row_num < temp.row_num)
UPDATE
업데이트와 함께 교체 할 때 #temp
테이블 아니지만 Original_Table
왜 그렇습니까? 맨 마지막 문장
UPDATE temp
set z = a + (select ISNULL(SUM(a),0)
from temp A where A.x= temp.x
and A.row_num < temp.row_num)
는 일부 테이블 이름 "온도"를 업데이트
공통 테이블 식이라고합니다. MS SQL의 경우 https://technet.microsoft.com/en-us/library/ms190766(v=sql.105).aspx – Serg
을 참조하십시오. 'original_table'을 (를) 업데이트하려고 시도하지 않았습니다. –
'UPDATE'는 동일합니다. 'WITH'만 변경됩니다. –