Update com subselect no firebird

Firebird

18/07/2017

Boa tarde pessoal estou com um problema para atualizar uma tabela no firebird. O problema é que preciso pegar os dados de outra tabela para atualizar a que quero.
Fiz através de subselect mas além de não atualizar, apaga os dados da tabela de onde estou buscando os dados.
Olha como estou fazendo:

update itenspedido set itenspedido.custo = (select precos.custo from precos where precos.item = 1)

No caso esse produto na tabela preço está com valor de 5,00, mas quando executo esse update ele passa a ficar 0,00 na tabela preco e a tabela itenspedido não altera.
Ederson

Ederson

Curtidas 0

Respostas

Douglas Souza

Douglas Souza

18/07/2017

Meu caro, boa tarde.

O update que você está realizando considera que todas as linhas da tabela "itenspedido" serão afetadas pela atualização do seu subselect que provavelmente tem seu retorno como 0. Ou seja, a coluna custo receberá o valor de seu subselect e será sempre o mesmo valor para todas as linhas de sua tabela "itenspedido".

É interessante você postar a relação entre as tabelas itenspedido e preco, pois assim fica mais fácil de demonstrar como você pode resolver o problema ;)

Um forte abraço.

Att, Douglas Claudio.
GOSTEI 0
POSTAR