Dúvida Sql PgAdmin3

16/05/2016

0

Boa tarde,
Estou com uma dúvida para fazer um UPDATE de uma chave estrangeira.

Tenho as seguintes tabelas:
<Tab_Produto>
id nome ncm idncm
1 teste 99999999

<Tab_ncm>
id codigo descricao
122 99999999 toalha
123 99999999 outros

Preciso preencher o campo NULL da tabela "produto" campo "idncm". Porém, para o mesmo codigo ncm eu tenho 2 id's.
Tentei usar o seguinte update:

update produto set idncm = (select id from ncm where codigo = '38089419')
from ncm
where produto.ncm = ncm.codigo and
produto.ncm= '38089419'

Neste eu preciso informar manualmente código a código, como automatizar isso?
Francielle

Francielle

Responder

Posts

17/05/2016

Jair N.

Bom Dia, sua dúvida é porque você tem na tabela ncm "ID" com o mesmo "CODIGO" repetido!
Se fosse buscar o maior valor do "ID" seria:

UPDATE produto p
SET idncm = n.id
FROM (SELECT ncm.codigo, MAX(ncm.id) AS id FROM ncm GROUP BY ncm.codigo) n
WHERE (n.codigo = p.ncm)

Agora, tem que ver este relacionamento.
Responder

25/05/2016

Francielle

Obrigada!
Deu tudo certo.
Responder

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

Aceitar