1

私は以下のように1つのテーブルを持っています

COAR_ID COCE_ID COCI_TYPE BRKR_NM  AGNCY_NM
123      123      P        abc
123      231      G                 def
123      331      G                 ghi

max(COCE_ID) および COCI_TYPE='G' である COCI_TYPE=P の AGNCY_NM を更新したい

したがって、出力は

COAR_ID COCE_ID COCI_TYPE BRKR_NM  AGNCY_NM
123      123      P        abc      ghi
123      231      G                 def
123      331      G                 ghi

次の更新クエリを使用しています

UPDATE Table
   SET
       AGNCY_NM = BB.AGNCY_NM
      ,UPDT_NBR = 3
    FROM
       Table AA
      ,Table BB
   WHERE
      AA.COAR_ID=BB.COAR_ID
      AND AA.COCI_TYPE='P'
      AND BB.AGNCY_NM <> ''
      AND AA.UPDT_NBR <> 3
      AND BB.COCE_ID=(SELECT MAX(CC.COCE_ID) FROM Table CC WHERE CC.COAR_ID=BB.COAR_ID )

期待どおりに動作していますが、パフォーマンスの問題が発生する可能性があるため、同じテーブルを再度使用したくありません。

列を更新するためのより良い解決策はありますか??

ありがとう、ディラジ

4

1 に答える 1

1

この方法を試してください:

UPDATE TAB
   SET
       AGNCY_NM = BB.AGNCY_NM
      ,UPDT_NBR = 3
    FROM
       TAB BB
   WHERE
      TAB.COAR_ID=BB.COAR_ID
      AND TAB.COCI_TYPE='P'
      AND BB.AGNCY_NM <> ''
      AND TAB.UPDT_NBR <> 3
      AND BB.COCE_ID=(SELECT MAX(CC.COCE_ID) FROM TAB CC WHERE CC.COAR_ID=BB.COAR_ID )
于 2013-03-29T12:32:14.053 に答える