2017-04-07 11 views
1

C1とC2の値を比較して最新の値をYと古いNに設定して、現在のフラグの値をYまたはNに更新するストアドプロシージャを作成したいとします。結果セット下の行1と2はC2とC2の値が同じですので、最新のYと古いNの現在のフラグを設定します。下の結果セットの行3は重複していませんので、 Y.あなたが相関サブクエリを使用して、標準SQLでこれを行うことができますフラグ列の値を更新する

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

を言う:

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

ありがとうゴードン、私のために仕事をしました。 –

関連する問題