2017-04-07 64 views
1

我想創建一個存儲過程,通過比較C1和C2的值,將當前標誌的值更新爲Y或N,並將最新的一個設置爲Y和較早的N.在結果集下面第1行和第2行的C2和C2的值相同,所以我想將最新的當前標誌設置爲Y,對於較舊的N.在下面的結果集中的第3行沒有重複,所以我希望它說Y.標誌列的更新值

10 12 9 1985-06-10  NULL 
10 12 60 2015-09-10  NULL 
3 5 23 2001-09-10  NULL 
1 1 96 2010-09-10  NULL 
1 1 71 2016-09-10  NULL 
+1

請用您正在使用的數據庫標記您的問題。 –

回答

0

可以在標準SQL中使用相關子查詢做到這一點:

update t 
    set flag = (case when date = (select max(date) from t t2 where t2.c1 = t.c1 and t2.c2 = t.c1) 
        then 'Y' else 'N' 
       end); 

特定數據庫可能有其他方法,但這應該適用於任何數據庫。

+0

非常感謝戈登,爲我做了這份工作。 –