UPDATE EM UMA TABELA COM DADOS DE OUTRA NO FIREBIRD

Firebird

05/06/2020

Bom dia a todos! tenho uma tabela PRODUTOS que contem um campo GRUPO e outra tabela MOVITENS que tenho também um campo chamado GRUPO. Preciso preencher o campo GRUPO da tabela MOVITENS com o conteudo do campo GRUPO da tabela PRODUTOS. Estou fazendo assim mas está retornando o erro abaixo:

UPDATE MOVITENS SET GRUPO = (SELECT GRUPO FROM PRODUTOS WHERE (PRODUTOS.CODIGO = MOVITENS.CODPRO));

O erro que é retorna é " multiple rows in singleton select. "
Gilson Silva

Gilson Silva

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

05/06/2020

isto deveria funcionar.
UPDATE MOVITENS SET GRUPO = (SELECT PRODUTOS.GRUPO FROM PRODUTOS WHERE PRODUTOS.CODIGO = MOVITENS.CODPRO);

se não funcionar, verifique se não há produtos duplicados na tua tabela PRODUTOS:
SELECT CODIGO, COUNT(*) QTD
FROM PRODUTOS
GROUP BY CODIGO
HAVING COUNT(*) > 1

GOSTEI 0
Gilson Silva

Gilson Silva

05/06/2020

Obrigado Emerson. Vc está certo. O problema está na tabela produtos que tem alguns produtos com código duplicado. Achei estranho porque já tinha rodado esse script em outro cliente e tinha dado certo. Valeu mesmo.
GOSTEI 0
Newsat

Newsat

05/06/2020

Boa tarde, e quando á registros duplicados na tabela PRODUTOS? Existe como pegar o registro mais recente ou qualquer um?
GOSTEI 0
Newsat

Newsat

05/06/2020

Boa tarde, e quando há registros duplicados na tabela PRODUTOS? Existe como pegar o registro mais recente ou qualquer um?
GOSTEI 0
POSTAR