Fórum Update em resultado de select com join? #594796
08/06/2018
0
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.
É 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
Curtir tópico
+ 0
Responder
Posts
08/06/2018
Venancio Alves
Olá Junior!
Sim é possível, a instrução SQL ficará da seguinte forma:
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
Clique aqui para fazer login e interagir na Comunidade :)