我想更新表中的列,並參考同一表中的其他列。例如:批量更新+ SQL +自加入
例如:如下圖所示 - 我想用最短日期更新有效期,以大於當前有效開始日期爲準。
這怎麼能在T-SQL中實現。這可以用單個更新語句完成嗎?
alt text http://img10.imageshack.us/img10/1448/updateenddate.jpg
謝謝。
我想更新表中的列,並參考同一表中的其他列。例如:批量更新+ SQL +自加入
例如:如下圖所示 - 我想用最短日期更新有效期,以大於當前有效開始日期爲準。
這怎麼能在T-SQL中實現。這可以用單個更新語句完成嗎?
alt text http://img10.imageshack.us/img10/1448/updateenddate.jpg
謝謝。
如何只使用一個子查詢,類似如下:
UPDATE MyTable mt
SET mt.EFFECTIVE_END_DATETIME = (SELECT MIN(mt2.EFFECTIVE_START_DATETIME)
FROM MyTable mt2
WHERE mt2.EFFECTIVE_START_DATETIME > mt.EFFECTIVE_START_DATETIME);
我懷疑你希望可以用case語句來完成什麼,而是因爲你的問題下面的部分是沒有意義的,我不能給你的代碼:
更新有效endate與最小日期爲準大於有效開始日期的當前記錄。
您好喬爾,分日期對給定的NK比當前記錄開始日期分鐘開始日期。感謝 – Sreedhar 2010-05-26 05:41:09
由於LC,它的工作改變了它作爲 UPDATE T0 SET T0.EFFECTIVE_END_DATETIME =(SELECT ISNULL(MIN(T1.EFFECTIVE_START_DATETIME), '9999-12-31') FROM SHARED.OSP_GEO_BOUNDARY_DIM T1 WHERE T1.EFFECTIVE_START_DATETIME> T0.EFFECTIVE_START_DATETIME AND T0.OSP_nk = T1.OSP_NK ) FROM SHARED.OSP_GEO_BOUNDARY_DIM T0 – Sreedhar 2010-05-26 05:38:28