Firebird (update com subselect e where)

06/08/2021

6

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

Posts

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar