Update em uma tabela com outra tabela - Porem quantidade de linhas diferentes
07/11/2014
0
Olá Pessoal
Estou atualizando a tabela "ESTOQUECOPIA" com os dados da tabela "ESTOQUEGERAL" até ai tudo bem. Porem a tabela "Estoque Geral" ao final do dia sempre terá mais linhas do que a "EstoqueCopia"
Então como eu faço para alem de "atualizar" as linhas existentes entre "ESTOQUECOPIA" e ESTOQUEGERAL adicionar as linhas a mais que estão dentro de "ESTOQUEGERAL" na tabela "ESTOQUECOPIA".
Código que utilizo parta atualizar as linha existentes.
UPDATE ESTOQUECOPIA SET ESTOQUECOPIA.REFE_COM_BARRA = EstoqueGeral.REFE_COM_BARRA FROM ESTOQUECOPIA INNER JOIN EstoqueGeral ON ESTOQUECOPIA.REFE_COM_BARRA = EstoqueGeral.REFE_COM_BARRA;
O banco é SQL SERVER
Grande Abraço.
Paulo
Estou atualizando a tabela "ESTOQUECOPIA" com os dados da tabela "ESTOQUEGERAL" até ai tudo bem. Porem a tabela "Estoque Geral" ao final do dia sempre terá mais linhas do que a "EstoqueCopia"
Então como eu faço para alem de "atualizar" as linhas existentes entre "ESTOQUECOPIA" e ESTOQUEGERAL adicionar as linhas a mais que estão dentro de "ESTOQUEGERAL" na tabela "ESTOQUECOPIA".
Código que utilizo parta atualizar as linha existentes.
UPDATE ESTOQUECOPIA SET ESTOQUECOPIA.REFE_COM_BARRA = EstoqueGeral.REFE_COM_BARRA FROM ESTOQUECOPIA INNER JOIN EstoqueGeral ON ESTOQUECOPIA.REFE_COM_BARRA = EstoqueGeral.REFE_COM_BARRA;
O banco é SQL SERVER
Grande Abraço.
Paulo
Paulo Lima
Curtir tópico
+ 0
Responder
Posts
08/11/2014
Soeuseijothaz
Não sei se entendi bem o seu questionamento, sou meio lerdo.
Mas vamos lá.
Antes de atualizar você deve inserir (INSERT INTO) as linhas a mais de "ESTOQUEGERAL" em "ESTOQUECOPIA" e depois faça o "UPATE".
O exemplo abaixo faz exatamente isto é sé copiar e colar para ver o funcionamento e depois adapte com os campo de suas tabelas.
Existe outras abordagens usando "not exists", mas achei o exemplo a seguir de simples compreensão.
Claro que antes de testar em seus dados faça back.
Espero que lhe dê uma luz.
Mas vamos lá.
Antes de atualizar você deve inserir (INSERT INTO) as linhas a mais de "ESTOQUEGERAL" em "ESTOQUECOPIA" e depois faça o "UPATE".
O exemplo abaixo faz exatamente isto é sé copiar e colar para ver o funcionamento e depois adapte com os campo de suas tabelas.
Existe outras abordagens usando "not exists", mas achei o exemplo a seguir de simples compreensão.
Claro que antes de testar em seus dados faça back.
CREATE TABLE #EstoqueGeral (linha int) insert into #EstoqueGeral (linha) values (1) insert into #EstoqueGeral (linha) values (2) insert into #EstoqueGeral (linha) values (3) insert into #EstoqueGeral (linha) values (4) insert into #EstoqueGeral (linha) values (5) CREATE TABLE #EstoqueCopia (linha int) insert into #EstoqueCopia (linha) values (1) insert into #EstoqueCopia (linha) values (2) insert into #EstoqueCopia select g.linha from #EstoqueGeral g left outer join #EstoqueCopia on #EstoqueCopia.linha= g.linha where #EstoqueCopia.linha is null select * from #EstoqueGeral select * from #EstoqueCopia --drop table #EstoqueGeral --drop table #EstoqueCopia
Espero que lhe dê uma luz.
Responder
Clique aqui para fazer login e interagir na Comunidade :)