Dúvida Sql PgAdmin3
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?
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
Curtidas 0
Respostas
Jair N.
16/05/2016
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.
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.
GOSTEI 0
Francielle
16/05/2016
Obrigada!
Deu tudo certo.
Deu tudo certo.
GOSTEI 0