GARANTIR DESCONTO

Fórum Update em resultado de select com join? #594796

08/06/2018

0

SQL

Prezados,
É possível fazer o update no resultado do seguinte select?

select
c.codcli, c.nomecli, c.datacadastro,
max(v.datacompra) ultcompra
from clientes c
left join vendas v on v.codcli = c.codcli
group by c.codcli, c.nomecli, c.datacadastro
having max(v.datacompra) < ''2016-06-01''

Neste caso o objetivo é fazer o update em um campo da tabela clientes para os clientes listados no select acima.
Junior

Junior

Responder

Posts

08/06/2018

Venancio Alves

Olá Junior!

Sim é possível, a instrução SQL ficará da seguinte forma:

UPDATE tabela_1
(left, right ou inner) JOIN tabela_2
ON
tabela_1.id = tabela_2.id
SET
tabela_1.coluna_1 = valor
WHERE tabela_2.campo = valor;



Responder

Gostei + 0

08/06/2018

Emerson Nascimento

pode ser feito.

update cli set
  cli.xxx = d.xxxx,
  cli.yyy = 'yyyyy',
  cli.zzz = d.ultcompra
from
  clientes cli
inner join
  (select
     c.codcli, c.nomecli, c.datacadastro,
     max(v.datacompra) ultcompra
   from
     clientes c
   left join
     vendas v on v.codcli = c.codcli
   group by
     c.codcli, c.nomecli, c.datacadastro
   having
     max(v.datacompra) < '2016-06-01') d on d.codcli = cli.codcli
Responder

Gostei + 0

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

Aceitar