› Fóruns › SQL e PL/SQL › Update em vários registros com dados diferentes › Responder a: Update em vários registros com dados diferentes
Uma possível solução para esse update poderia ser:
update TABELA A set
( A.CAMPO_1
, A.CAMPO_2
, A.CAMPO_3
, A.CAMPO_4
, A.CAMPO_5
, A.CAMPO_6 ) = ( select B.CAMPO_1
, B.CAMPO_2
, B.CAMPO_3
, B.CAMPO_4
, B.CAMPO_5
, B.CAMPO_6
from TABELA B
where B.CAMPO_CONDICAO_1 = <VARIAVEL_1>
AND B.CAMPO_CONDICAO_2 = <VARIAVEL_2>
and B.CAMPO_CONDICAO_3 = <VARIAVEL_3>
and B.CAMPO_CONDICAO_4 = <VARIAVEL_4>
and B.CAMPO_CONDICAO_5 = to_date(<VARIAVEL_5>, ‘dd/mm/yyyy’)
and A.CAMPO_CHAVE_1 = B.CAMPO_CHAVE_1
and A.CAMPO_CHAVE_2 = B.CAMPO_CHAVE_2
and A.CAMPO_CHAVE_3 = B.CAMPO_CHAVE_3
and A.CAMPO_CHAVE_4 = B.CAMPO_CHAVE_4
and A.CAMPO_CHAVE_5 = B.CAMPO_CHAVE_5
and A.CAMPO_CHAVE_6 = B.CAMPO_CHAVE_6
and A.CAMPO_CHAVE_7 = B.CAMPO_CHAVE_7
and A.CAMPO_CHAVE_8 = B.CAMPO_CHAVE_8
and A.CAMPO_CHAVE_9 = B.CAMPO_CHAVE_9
)
where A.CAMPO_CONDICAO_1 = <VARIAVEL_1>
AND A.CAMPO_CONDICAO_2 = <VARIAVEL_2>
and A.CAMPO_CONDICAO_3 = <VARIAVEL_3>
and A.CAMPO_CONDICAO_4 = <VARIAVEL_4>
and A.CAMPO_CONDICAO_5 = to_date(<VARIAVEL_5>, ‘dd/mm/yyyy’)
AND A.CAMPO_CONDICAO_6 is null