Firebird (update com subselect e where)

06/08/2021

0

Boa tarde, pessoal!
Estou tentando fazer um update de um campo na tabela vendas com dados de outra tabela chamada chave, porém preciso usar um condicional com os dados de um campo da tabela chave. Consegui com o código abaixo mas está alterando todos os registros da tabela vendas

update vendas v
set
v.data = (select
c.data
from chave c
where
(c.cupom = v.cupom))

A tabela chave tem um campo chamado status só quero alterar a data na tabela vendas quando o status em chave for diferente de 'autorizada'
Daniel Santos

Daniel Santos

Responder

Posts

07/08/2021

Emerson Nascimento

tente algo assim:
update vendas v set
    v.data = (select c.data from chave c where c.cupom = v.cupom and c.status = 'x')
where
    exists(select c.data from chave c where c.cupom = v.cupom and c.status = 'x')

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar