Update com o valor do campo de outra tabela

31/03/2017

0

Boa tarde, estou tentando montar um comando onde preciso atualizar um campo (procest) com o mesmo valor de outro campo (clascest), porem esse segundo campo está em outra tabela.
tabela1 (produto)
campo (proclasco) - Valor igual ao campo "clascocod" da tabela2
campo (procest) - Não tem valor nenhum - e preciso que o valor segue igual ao campo "clascest" da tabela2


tabela2 (classif)
campo (clascocod)
campo (clascest)

Alguém pode me ajudar?


Obg.
Atenciosamente
Luiz

Luiz

Responder

Post mais votado

31/03/2017

update tabela1 a set a.procest = (select b.clascest from tabela2 b where a.proclasco = b.clascocod)


tenta isso

Wazowski

Wazowski
Responder

Mais Posts

31/03/2017

Luiz

Olá Sir Wazowski,

Obg, mas ocorreu um erro.

ERROR: column "a" of relation "produto" does not exist
LINE 1: update produto a set a.procest = (select b.clascest from clasfi...
^

********** Error **********

ERROR: column "a" of relation "produto" does not exist
SQL state: 42703
Character: 19
Responder

31/03/2017

Luiz

Olá

A chave primaria da tabela 1(produtos)
campo-PK (produto)
campo (proclasco) - Valor igual ao campo "clascocod" da tabela 2
campo (procest) - Não tem valor nenhum - e preciso que o valor segue igual ao campo "clascest" da tabela2

tabela 2 (clasfisc)
campo-PK (clascocod)
campo (clascest)
Responder

31/03/2017

Wazowski

Essa sintaxe que te mandei é de firebird.. me parece q tu ta fazendo em postgre

tenta assim:
 
update tabela1 
set tabela1.procest = tabela2.clascest 
from tabela2, tabela1 
where tabela2.clascocod =  tabela1.proclasco
Responder

31/03/2017

Wazowski

agora que vi inclusive na tag da pergunta hehe
Responder

31/03/2017

Luiz

Olá,

Sim estou tentando fazer em postgre.

tentei no meu banco e em banco com nome da tabela diferentes, ajustando.
mas apresenta algo em relação ao nome da tabela.

Comando:
update item
set item.procest = clasfisc.clascest
from clasfisc, item
where clasfisc.clascocod = item.proclasco




ERROR: table name "item" specified more than once

********** Error **********

ERROR: table name "item" specified more than once
SQL state: 42712
Responder

31/03/2017

Wazowski

update item 
set item.procest = clasfisc.clascest 
from clasfisc
where clasfisc.clascocod = item.proclasco


tenta sem especificar o nome da primeira tabela de novo no FROM
Responder

31/03/2017

Wazowski

update item 
set procest = clasfisc.clascest 
from clasfisc
where clasfisc.clascocod = item.proclasco


pode tirar o apelido se quiser tbm
Responder

31/03/2017

Luiz

Olá Sir Wazowski

Esse comando que você passou deu certinho.

Muito OBRIGADO!

update item
set procest = clasfisc.clascest
from clasfisc
where clasfisc.clascocod = item.proclasco


Abraço
Atenciosamente
Responder

31/03/2017

Wazowski

Valeu, abraço
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar