2014-04-18 3 views
0

CTE를 사용하여 작업하려는 데이터 행을 식별했으며 현재 레코드를 필드로 업데이트하려고합니다. 이전 기록에서. row_number 및 파티션을 사용하여 관련 그룹에 데이터를 가져옵니다. 필자가 작성한 코드를 실행하면 모든 레코드가 파티션에서 정의한 그룹화에 해당하는 날짜가 아닌 정확한 날짜로 업데이트됩니다.SQL Server 2008을 사용하여 이전 데이터 행의 열로 파일을 업데이트해야합니다.

WITH numbered AS (
    SELECT mfg , serialno1 , datenxt, rowno = row_number() 
     OVER (PARTITION BY mfg, serialno1 ORDER BY datenxt)  
    FROM eqhist 
) 
update dbo.eqhist 
set offrdt=b.datenxt 
from numbered a 
left JOIN numbered b 
    ON a.mfg=b.mfg and a.serialno1=b.serialno1 and b.rowno = a.rowno - 1 

어떤 단계가 빠져 있습니까?

+0

내가 실행됩니다 가입은 " 업데이트 단계 "를 offrdt 및 datenxt와 행 등을 사용하여 select로 선택하면됩니다. –

+0

선을 따라 어딘가에 파생 테이블에 eqhist에 가입해야합니다. –

답변

0

TRY이 방법.

SELECT MFG, SCN, DT1, DT2, RN = #RCTE SET UPDATE #RCTE DT2 FROM #의 RCTE2 INTO RCTE SELECT * FROM #RCTE INTO ROW_NUMBER() OVER (MFG, SCN, DT1, DT2 ORDER BY) = # #RCTE INNER FROM RCTE2.DT1는 # RCTE2 ON은 (# RCTE.RN = # RCTE2.RN + 1) SELECT * #RCTE DROP TABLE의 #RCTE DROP TABLE 번호의 RCTE2로부터

관련 문제