Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Atualizar uma tabela incluindo os registros novos de outra


Flecha

Pergunta

Olá.

Vou tentar explicar o que quero fazer:

Tenho uma Tabela_acumula : nela tera todos registros de funcionarios com Nome, Rg, Departamento.

Tenho outra tabela_dia_dia : que recebe novos funcionários com os mesmos dados Nome, Rg, Departamento que é uma cópia da tabela_acumula, mas do dia posterior. Então nesta tabela_dia_dia terá os dados da tabela _acumula + os funcionários novos.

Eu quero contruir uma instrução que vai verificar o RG da tabela_dia_dia se já existe na tabela_acumula, se já existir descarta e se não existir inclui na tabela _acumula e esta via se tornar uma tabela com todos os funcionários que passaram na empresa.

Só vi consultas que verifica duplicidade, e não coincidentes. No caso os Não Coincidentes na comparação deveriam ser incluidos na tabela _acumula.

A chave é o campo RG (não permite duplicidade).

Obrigado

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

flecha, sentimos todos sua falta.

da pra fazer com LEFT JOIN, mas eu gosto mais de fazer assim:

Select * From tabela_dia_dia Where RG In (Select RG From tabela_acumula)
isso traz todos os rgs em comum entre as duas tabelas. acho q o melhor seria selecionar só os q não estao na outra tabela:
Select * From tabela_dia_dia Where RG Not In (Select RG From tabela_acumula)

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado, Kuroi e Iceguy

Eu vou testar, acho qe é a segunda opção do Kuroi que eu quero, so os que não forem comuns que vão somar.

Depois retorno o resultado.

Kuroi, estou sempre dando um olhada no forum para ver as duvidas, Obrigado pela lembrança.

Flecha

Link para o comentário
Compartilhar em outros sites

  • 0

Caros amigos não deu certo.

Usei essa função:

SELECT *
FROM tabela781
WHERE (((tabela781.RG) Not In (Select RG From tabela793)));

Retornou 37 registros que não coincide entre as tabelas ou seja, na tabela781 existem 37 registros que não estão na tabela 793.

Até ai tudo bem, mas

Eu quero acrescentar esses 37 registros na tabela793. Tem como ?

A sugestão do Iceguy criou uma tabela de 1224 registros duplicando os já existentes nas duas tabelas.

Link para o comentário
Compartilhar em outros sites

  • 0

se a estrutura das tabelas forem exatamente iguais, você faz:

Insert Into tabela793
SELECT *
FROM tabela781
WHERE (((tabela781.RG) Not In (Select RG From tabela793)));[/code] se as tabelas não forem exatamente iguais, ou caso exista campos autonumeracao q devem atrapalhar, você faz a mesma coisa, só q especifica os campos:
[code]Insert Into tabela793 (campo1, campo2)
SELECT campo1, campo2
FROM tabela781
WHERE (((tabela781.RG) Not In (Select RG From tabela793)));

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi,

Estava sem internet, consegui pelo site da Microsoft um exemplo

pelo modo assistente, primeiro fazendo a consulta de não coincidentes e depois alterando

para cinsulta acrescimo sem fecha a outra e ficou assim:

INSERT INTO Tabela793 ( RG, NOME, ENDEREÇO, CIDADE, ESTADO, CEP, TELRES, CustID, CPF, BAIRRO, NACIONALIDADE, NATURALIDADE, DTNATO, PAI, MAE, POSIÇAO, NUMERO, COMPLEMENTO, Est_Civil, OBSA, Cargo, Classe, Exercicio, TELCEL, last_Update, F_RH, Sit, Dif, Foto, LocalFoto )
SELECT tabela781.RG, tabela781.NOME, tabela781.ENDEREÇO, tabela781.CIDADE, tabela781.ESTADO, tabela781.CEP, tabela781.TELRES, tabela781.CustID, tabela781.CPF, tabela781.BAIRRO, tabela781.NACIONALIDADE, tabela781.NATURALIDADE, tabela781.DTNATO, tabela781.PAI, tabela781.MAE, tabela781.POSIÇAO, tabela781.NUMERO, tabela781.COMPLEMENTO, tabela781.Est_Civil, tabela781.OBSA, tabela781.Cargo, tabela781.Classe, tabela781.Exercicio, tabela781.TELCEL, tabela781.last_Update, tabela781.F_RH, tabela781.Sit, tabela781.Dif, tabela781.Foto, tabela781.LocalFoto, *
FROM tabela781
WHERE (((tabela781.RG) Not In (Select RG From tabela793)));

Funcionou legal,

Sua sugestão é exatamente igual a que ficou.

Obrigado

Editado por Flecha
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...