Update que retorna múltiplas linhas
Tenho uma tabela produto que contém o campo derivado ultimo_preco_compra, tenho uma tabela item_compra que contém o preco de compra de determinado produto, preciso criar um update que atualize o valor de produto.ultimo_preco_compra de acordo com o valor desse produto na tabela item_compra, lembrando que o um produto x pode conter vários valores de compra no decorrer de um determinado período pois pode subir ou diminuir de preço.
Fiz a seguinte query:
UPDATE produto p SET p.ultimo_preco_compra=(SELECT ic.preco FROM item_compra ic) WHERE p.cod_produto IN
(SELECT ic.preco FROM item_compra ic WHERE ic.data_entrega_item IN
(SELECT max(data_entrega_item) FROM item_compra GROUP BY cod_produto));
teoricamente sem a parte em vermelho eu teria o resultado desejado, contudo, a consulta retorna múltiplas linhas o que não é permitido pelo operador '=', tentei utilizar o operador IN mas o retorno não é o desejado retornando vazio.
Alguém pode ajudar?
Discussão (8)
Carregando comentários...