Fazer um update usando um select no firebird

06/08/2014

41

Olá a todos.

Estou com uma dúvida na criação de um comando em sql. Estou utilizando o ibexpert e o firebird 2.5.

Esse é o comando que estou tentando executar.
update tmovitens set tmovitens.codven1=tmov.codven1 select tmovitens.codven1, tmov.codven1 from tmov inner join tmovitens on (tmov.idmov = tmovitens.idmov) where tmov.idmov=tmovitens.idmov;


Outro comando que eu tentei foi:

update tmovitens set tmovitens.codven1=tmov.codven1 from tmov inner join tmovitens on (tmov.idmov = tmovitens.idmov)


Como vocês podem ver, eu quero passar o valor que está na tmov.codven1 para a tmovitens.codven1. A tabela da tmov é como se fosse a da venda e a outra é dos itens que estão na primeira.

No google eu encontrei isso: http://www.sv.com.br/como-fazer-um-update-com-um-select/

E foi essa lógica que eu utilizei e não deu certo, pois quando eu rodo no ibexpert, dá erro de sintaxe errada não reconhecendo o comando "from" ou o comando select.

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 53.
from.


Os tópicos que eu vi nesse fórum nenhum estava batendo com o que eu estava tentando fazer, então resolvi criar esse.
Responder

Post mais votado

06/08/2014

boa tarde nao conheço muito bem mais veja se ajuda.

achei esse link... veja se ajuda.. http://social.msdn.microsoft.com/Forums/pt-BR/9304439c-b413-4c1f-ae1a-e282439b8c5a/update-no-firebird-com-mais-de-uma-tabela-como-fazer?forum=vscsharppt
Responder

Mais Posts

06/08/2014

Rafael Mota

Boa tarde!

Se o que você quer é que o campo codven1 da tabela tmovitens fique igual ao campo codven1 da tabela tmov, o comando sql deve ficar +ou- assim:

update tmovitens
       set tmovitens.codven1 = (select tmov.codven1 from tmov
                                where tmov.idmov=tmovitens.idmov)


Espero que ajude, abraços.
Responder

06/08/2014

João José

boa tarde nao conheço muito bem mais veja se ajuda.

achei esse link... veja se ajuda.. http://social.msdn.microsoft.com/Forums/pt-BR/9304439c-b413-4c1f-ae1a-e282439b8c5a/update-no-firebird-com-mais-de-uma-tabela-como-fazer?forum=vscsharppt


Acho que era isso que eu estava procurando.

Boa tarde!

Se o que você quer é que o campo codven1 da tabela tmovitens fique igual ao campo codven1 da tabela tmov, o comando sql deve ficar +ou- assim:

update tmovitens
       set tmovitens.codven1 = (select tmov.codven1 from tmov
                                where tmov.idmov=tmovitens.idmov)


Espero que ajude, abraços.


Deu certinho. Muito obrigado.
Responder

07/08/2014

William

Finalizando tópico!
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira