Update com Inner join no Postgres
Bom dia
Estou realizando um update no banco de dados, só que ao invés do comando ser aplicado apenas no registros encontrados ele aplica em toda tabela.
Segue comando SQL, alguém pode me indicar o erro ou me sugeri outra alternativa,
update contas_contabil
set
credito = b.credito
from contas_contabil a
inner join contas_bancos b on
a.valor = b.valor and
a.empresa = b.empresa and
(a.data = b.data or
a.data + INTERVAL '1 DAYS' = b.data or
a.data + INTERVAL '2 DAYS' = b.data or
a.data - INTERVAL '1 DAYS' = b.data or
a.data - INTERVAL '1 DAYS' = b.data)
Estou realizando um update no banco de dados, só que ao invés do comando ser aplicado apenas no registros encontrados ele aplica em toda tabela.
Segue comando SQL, alguém pode me indicar o erro ou me sugeri outra alternativa,
update contas_contabil
set
credito = b.credito
from contas_contabil a
inner join contas_bancos b on
a.valor = b.valor and
a.empresa = b.empresa and
(a.data = b.data or
a.data + INTERVAL '1 DAYS' = b.data or
a.data + INTERVAL '2 DAYS' = b.data or
a.data - INTERVAL '1 DAYS' = b.data or
a.data - INTERVAL '1 DAYS' = b.data)
Host Solucões
Curtidas 0
Respostas
Jair N.
29/10/2014
Boa Tarde, teste agora assim.:
UPDATE contas_contabil a
SET credito = b.credito
FROM contas_bancos b
WHERE (a.valor = b.valor)
AND (a.empresa = b.empresa)
AND ((a.data = b.data)
OR (a.data + INTERVAL '1 DAYS' = b.data)
OR (a.data + INTERVAL '2 DAYS' = b.data)
OR (a.data - INTERVAL '1 DAYS' = b.data)
OR (a.data - INTERVAL '1 DAYS' = b.data))
UPDATE contas_contabil a
SET credito = b.credito
FROM contas_bancos b
WHERE (a.valor = b.valor)
AND (a.empresa = b.empresa)
AND ((a.data = b.data)
OR (a.data + INTERVAL '1 DAYS' = b.data)
OR (a.data + INTERVAL '2 DAYS' = b.data)
OR (a.data - INTERVAL '1 DAYS' = b.data)
OR (a.data - INTERVAL '1 DAYS' = b.data))
GOSTEI 0
Host Solucões
29/10/2014
Deu certo d+, muito obrigado
GOSTEI 0