Array
(
)

Update de um campo usando outra Tabela

Novato_sql
   - 25 out 2011

Boa tarde, sou novo por aqui e meio que iniciante em SQL.
Me ajudem, preciso atualizar um campo de uma tabela usando campo de outra.
update ENTRADAS set NOTA_FISCAL = CONTAS_PAGAR.NOTA
Tenho os filtros where e já sei usalos, mas creio que estou montando errado linha update
Isso é para resolver uma falha antiga no nosso ERP, onde foi apagado na tabela entradas o número da Nota mas ainda temos esse número na tabela CONTAS_PAGAR.
Obrigado

Joel Rodrigues
   - 25 out 2011

Um exemplo.
Eu tenho duas tabelas: LANCAMENTO_CAIXA e CONTAS_PAGAR. Na tabela de lançamentos, eu guardo o valor e o código da conta que foi paga.
Houve uma falha no meu sistema onde ocorreu o seguinte: o valor da conta não estava sendo gravado, só o número. Preciso atualizar a tabela de lançamentos para que todos os registros relacionados com contas a pagar passem a ter o valor correto (o valor da conta).
Solução:
#Código

UPDATE LANCAMENTO_CAIXA SET VALOR_CONTA = (SELECT VALOR FROM CONTAS_PAGAR C WHERE C.CODIGO = LANCAMENTO_CAIXA.CODIGO_CONTA)

Espero ter ajudado.
Qualquer coisa, dê mais detalhes sobre a estrutura de suas tabelas e qual o relacionamento entre elas.

Bruno Manguinho
   - 15 dez 2011

Você pode fazer um UPDATE FROM

update ENTRADAS set NOTA_FISCAL = CONTAS_PAGAR.NOTA

UPDATE ENTRADAS SET
NOTA_FISCAL = CONTAS_PAGAR.NOTA
FROM ENTRADAS
INNER JOIN CONTAS_PAGAR ON CONTAS_PAGAR.Codigo = ENTRADAS.Codigo_CONTAS_PAGAR

Estou levando em consideração aqui que ENTRADAS tem uma chave estrangeira de CONTAS_PAGAR, ou vice-versa (a depender da estrutura que vc montou), e fiz um Join com essa relação.

Claro que os nomes das chaves eu inventei e vc tem que colocar do jeito que esta no sistema.