Reputation: 601
I have one table as below
COAR_ID COCE_ID COCI_TYPE BRKR_NM AGNCY_NM
123 123 P abc
123 231 G def
123 331 G ghi
I want to update AGNCY_NM for COCI_TYPE=P where max(COCE_ID) and COCI_TYPE='G'
so the output should be
COAR_ID COCE_ID COCI_TYPE BRKR_NM AGNCY_NM
123 123 P abc ghi
123 231 G def
123 331 G ghi
i m using following update query
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 )
it is working as expecting but i dont want to use same table again and agian as it may cause performance issue.
any better solution to update the column??
Thanks, Dhiraj
Upvotes: 1
Views: 2456
Reputation: 25753
Try this way:
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 )
Upvotes: 1