Erro em ORA-01427: a subconsulta de uma única linha retorna mais de uma linha

Oracle PL SQL

29/10/2019

PRECISO DE UMA JUDA NESSE UPDATE


Update TB_PRODUTO A
Set A.VALOR_UNITARIO = (
SELECT (B.VALOR_VENDA / B.QTD_ITENS)
FROM TB_ITEM_PEDIDO B
WHERE A.codigo_produto = B.codigo_produto)


dessa forma dá o seguinte erro : a subconsulta de uma unica linha retorna mais de uma linha.
Erika

Erika

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

29/10/2019

provavelmente há vários itens de pedido como o mesmo código de produto.
você precisa de uma média para jogar na tabela de produtos.

use a função AVG, que calcula a média.
algo assim:
Update TB_PRODUTO A
	Set A.VALOR_UNITARIO = (	SELECT AVG(B.VALOR_VENDA / B.QTD_ITENS)
								FROM TB_ITEM_PEDIDO B
								WHERE A.codigo_produto = B.codigo_produto	)
GOSTEI 0
POSTAR