[英]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';
如果表中有其他列的數據已映射到正確的日期,請嘗試以下步驟:
將recordA記錄獲取到臨時表中,例如#CorrectHelpTable。 確保還從源表中繪制主鍵,因為我們將使用它來映射到新值。
在該臨時表中進行如上所述的更新。
更新源表,比較存在的日期並通過主鍵進行連接,並使用#CorrectHelpTable中的值更新第三列(表示3.5等)。
對於源表中不存在的日期,請插入盡可能多的記錄。 在這種情況下,您可能必須決定要為其他列提供什么值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.