Firebird (update com subselect e where)

SELECT

Firebird

06/08/2021

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

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

06/08/2021

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')

GOSTEI 0
POSTAR