2015-06-24 68 views
1

enter image description here更新日期如果晚一天

用戶(USER_ID)在不同時間段的數據輸入。如果日期晚一天,則數據被認爲是相同的集合。主要是我想改變第三排的日期等於第二排。

UPDATE #temp 
SET CUR_VALUE_DATETIME = DATEADD(DAY, -1, CUR_VALUE_DATETIME) 
WHERE CUR_VALUE_DATETIME <= DATEADD(DAY, -1, CUR_VALUE_DATETIME) 

上面的方法我試過沒有返回。

+1

您的'WHERE'子句永遠不會成立,因爲您正試圖將cur_value_datetime與小於相同值的1天相匹配。基本上你正在更新1/2/2015 = 1/1/2015的記錄。我假設cur_value_datetime與CUR_VALUE_DATETIME相同? – Tingo

+0

Yes.cur_value_datetime與CUR_VALUE_DATETIME相同。我注意到子句永遠不會是真的,但我不知道如何使它工作。 – user1804925

回答

2

如果我明白你想要用這個特殊的例子來做什麼,你需要比較每個日期和碰巧是更大的日期。您可以通過自我加入完成此操作。

update t1 
    set t1.curr_value_datetime = t2.curr_value_datetime 
    from #temp t1 
     join #temp t2 
      on t1.curr_value_datetime - 1 = t2.curr_value_datetime 

但是,由於您提到了user_id,您將需要對此進行調整,以便將user_id考慮在內。否則,你會遇到問題。