簡體   English   中英

使用上個月的數據進行sql更新

[英]sql update with previous month data

擁有一個數據庫,該數據庫中的一列數據以這種方式出錯:它的當前月份記錄實際上是下個月的數據。 例如

recordA     2014-12-01  3.5
recordB     2014-12-01  1.5
recordC     2014-12-01  5.5
recordD     2014-12-01  3.5


recordB     2014-11-01  3.8
recordC     2014-11-01  6.7
recordD     2014-11-01  1.1

recordA     2014-10-01  8.5
recordB     2014-10-01  3.5
recordC     2014-10-01  4.4
recordD     2014-10-01  1.5

...

所以基本上,目前2014-12-01數據實際上是2015-01-01數據,2014-11-01數據實際上是2014-12-01數據,我該如何用上個月的記錄更新這些記錄? 一項特定的記錄可能還會缺少幾個月。 例如,缺少recordA 2014-11-01,在這種情況下,要么用2014-10-11記錄創建一個新的2014-11-01記錄,要么就不更新。

對我來說,這是一個相當復雜的sql,請幫助。

DateAdd函數與recordA上的where條件一起使用。

Update Table_Name_Here set DateField_Name_Here = DateAdd(month, 1, DateField_Name_Here) Where RecordTypeField_Name_Here = 'recordA';

如果表中有其他列的數據已映射到正確的日期,請嘗試以下步驟:

  1. 將recordA記錄獲取到臨時表中,例如#CorrectHelpTable。 確保還從源表中繪制主鍵,因為我們將使用它來映射到新值。

  2. 在該臨時表中進行如上所述的更新。

  3. 更新源表,比較存在的日期並通過主鍵進行連接,並使用#CorrectHelpTable中的值更新第三列(表示3.5等)。

  4. 對於源表中不存在的日期,請插入盡可能多的記錄。 在這種情況下,您可能必須決定要為其他列提供什么值。

暫無
暫無

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

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