Fórum Update com Sub Select #564721
26/10/2016
0
Boa tarde a todos!
Estou com uma dificuldade para fazer um update, seja com sub select ou inner join em um banco firebird.
Preciso que o campo id_doc_receber da tabela receber, receba o valor do campo num_nf_pedven da tabela pedven.
Os select's abaixo funciona normalmente:
select * from receber
where no_pedven in (select no_pedven from pedven
where cd_cli = cd_cli
and no_pedven = no_pedven
and dt_docto_receber = dt_pedven
and dt_pedven >= '01/01/2016')
and id_doc_receber = ''
select * from receber as rec
inner join pedven as ped on (rec.no_pedven = ped.no_pedven)
where id_doc_receber = ''
and rec.cd_cli = ped.cd_cli
and rec.dt_docto_receber = ped.dt_pedven
and ped.dt_pedven >= '01/01/2016'
Porém não consigo enxergar como fazer o update.
Aluma ajuda?
Estou com uma dificuldade para fazer um update, seja com sub select ou inner join em um banco firebird.
Preciso que o campo id_doc_receber da tabela receber, receba o valor do campo num_nf_pedven da tabela pedven.
Os select's abaixo funciona normalmente:
select * from receber
where no_pedven in (select no_pedven from pedven
where cd_cli = cd_cli
and no_pedven = no_pedven
and dt_docto_receber = dt_pedven
and dt_pedven >= '01/01/2016')
and id_doc_receber = ''
select * from receber as rec
inner join pedven as ped on (rec.no_pedven = ped.no_pedven)
where id_doc_receber = ''
and rec.cd_cli = ped.cd_cli
and rec.dt_docto_receber = ped.dt_pedven
and ped.dt_pedven >= '01/01/2016'
Porém não consigo enxergar como fazer o update.
Aluma ajuda?
Poliana Santos
Curtir tópico
+ 0
Responder
Posts
26/10/2016
Jones Granatyr
Opa! Uma ideia é fazer com subconsultas, por exemplo:
update TABELA set CAMPO = ? where CAMPO = (aqui faz os selects)
update TABELA set CAMPO = ? where CAMPO = (aqui faz os selects)
Responder
Gostei + 0
03/11/2016
Araujo Junior.
São duas Queries diferentes que voce tem.....
Pode ser mais ou menos assim:
Alguns bancos de dados permitem voce fazer assim:
Pode ser mais ou menos assim:
UPDATE RECEBER
SET CAMPO = BLABLA
WHERE ID IN (
select ID
from receber
where no_pedven in (select no_pedven from pedven
where cd_cli = cd_cli
and no_pedven = no_pedven
and dt_docto_receber = dt_pedven
and dt_pedven >= '01/01/2016')
and id_doc_receber = '')
UPDATE PED
SET CAMPO = BLABLA
WHERE PED.NO_PEDVEN IN (
select rec.id
from receber as rec inner join
pedven as ped on (rec.no_pedven = ped.no_pedven)
where id_doc_receber = ''
and rec.cd_cli = ped.cd_cli
and rec.dt_docto_receber = ped.dt_pedven
and ped.dt_pedven >= '01/01/2016')
Alguns bancos de dados permitem voce fazer assim:
UPDATE RECEBER
set campo = blabla
from receber
where no_pedven in (select no_pedven from pedven
where cd_cli = cd_cli
and no_pedven = no_pedven
and dt_docto_receber = dt_pedven
and dt_pedven >= '01/01/2016')
and id_doc_receber = ''
UPDATE PED
SET CAMPO = BLABLA
from receber as rec inner join
pedven as ped on (rec.no_pedven = ped.no_pedven)
where id_doc_receber = ''
and rec.cd_cli = ped.cd_cli
and rec.dt_docto_receber = ped.dt_pedven
and ped.dt_pedven >= '01/01/2016'
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)