簡體   English   中英

我需要使用SQL Server 2008更新上一行數據中的一列的文件

[英]I need to update a file with a column from a previous row of data using SQL Server 2008

我已經確定了要使用CTE處理的數據行,並且我嘗試使用上一條記錄中的字段更新當前記錄。 我正在使用row_number和分區將數據分為相關組。 當我執行編寫的代碼時,每條記錄都會使用完全相同的日期而不是與我在分區中定義的分組相對應的日期進行更新。

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 

我想走哪一步?

嘗試這種方式。

選擇MFG,SCN,DT1,DT2,RN = ROW_NUMBER()(按MFG,SCN,DT1,DT2的順序)進入RCTE的#RCTE選擇*進入RCTE的#RCTE2更新RCTE設置DT2 =#RCTE2.DT1 #RCTE內部聯接#RCTE2開啟(#RCTE.RN =#RCTE2.RN + 1)選擇*從#RCTE DROP TABLE #RCTE DROP TABLE#RCTE2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM