Upadate usando dados de outra tabela

SQL

Firebird

FireDAC

CRUD - Delphi

15/06/2024

Boa noite pessoal, tenho uma dúvida no update:
alterar o preço dos itens de uma tabela de acordo com preços de um registro de outra tabela.

Tenho uma tabela com itens e preços de orçamentos [orcamento_item] -----> id da chave fk_orcamento

preciso alterar os preços dos produtos de um determinado orcamento dada tabela [orcamento_item]

Tabela destino: orcamento_item
QUERY 'qryitens', campo PRECO -------> qryitensPRECO

Tabela Origem: produtos
QUERY 'qryprod' campo PR_ATACADO -------> qryprodPR_ATACADO

update o valor do campo qryitemPRECO da tabela orcamento_item, para o valor do campo qryprodPR_ATACADO da tabela
produtos

Resuminto
preciso mudar todos os preços dos produtos de um determinado orçamento da tabela orçamento_item cujo a chave é fk_orcamento para o preço de atacado dos produtos da tabela 'produtos'.

Desculpe se fui muito redundante.
Assis Ferreira

Assis Ferreira

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

19/06/2024

tente algo assim:

update orcamento_item oi set
       oi.preco = (select p.pr_atacado from produtos p where p.codigo = oi.produto)
where
       oi.fk_orcamento = id_orcamento_desejado


GOSTEI 1

Mais Respostas

Assis Ferreira

Assis Ferreira

15/06/2024

Esqueci de especificar: Mudar apenas os itens que a fk_orcamento = ao campo codigo da tabela orcamento. Firebird
GOSTEI 0
Assis Ferreira

Assis Ferreira

15/06/2024

tente algo assim:

update orcamento_item oi set
       oi.preco = (select p.pr_atacado from produtos p where p.codigo = oi.produto)
where
       oi.fk_orcamento = id_orcamento_desejado




chegando em casa eu tento!

uma duvida, o id do orçamento é o mesmo do fk_orcamento. Como ficaria essa instrução?
GOSTEI 0
Assis Ferreira

Assis Ferreira

15/06/2024

tente algo assim:

update orcamento_item oi set
       oi.preco = (select p.pr_atacado from produtos p where p.codigo = oi.produto)
where
       oi.fk_orcamento = id_orcamento_desejado


Deu certo aqui, valeu!
GOSTEI 0
Assis Ferreira

Assis Ferreira

15/06/2024

tente algo assim:

update orcamento_item oi set
       oi.preco = (select p.pr_atacado from produtos p where p.codigo = oi.produto)
where
       oi.fk_orcamento = id_orcamento_desejado



Bom dia Emerson, eu esqueci de mencionar, lógico, que teria que atualizar o campo total.
Teria como nessa instrução já multiplicar o campo oi.preco x oi.qtd, resultado no camppo oi.total?
tentei mil jeitos e nao consegui.
Obrigado,
GOSTEI 0
Assis Ferreira

Assis Ferreira

15/06/2024

tente algo assim:

update orcamento_item oi set
       oi.preco = (select p.pr_atacado from produtos p where p.codigo = oi.produto)
where
       oi.fk_orcamento = id_orcamento_desejado



Bom dia Emerson, eu esqueci de mencionar, lógico, que teria que atualizar o campo total.
Teria como nessa instrução já multiplicar o campo oi.preco x oi.qtd, resultado no camppo oi.total?
tentei mil jeitos e nao consegui.
Obrigado,


Consegui depois da milésima vez! Dessa vez o mestre do sql, Emerson, que ajuda a todos aqui, nao presicou me ajudar!
GOSTEI 0
POSTAR