UPDATE EM UMA TABELA COM DADOS DE OUTRA NO FIREBIRD
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. "
UPDATE MOVITENS SET GRUPO = (SELECT GRUPO FROM PRODUTOS WHERE (PRODUTOS.CODIGO = MOVITENS.CODPRO));
O erro que é retorna é " multiple rows in singleton select. "
Gilson Silva
Curtidas 0
Respostas
Emerson Nascimento
05/06/2020
isto deveria funcionar.
se não funcionar, verifique se não há produtos duplicados na tua tabela PRODUTOS:
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
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
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
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