USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Eliminar registros proximos, via comando SQL
M A R C I O
SÃO BERNARDO
SP - BRASIL
Postada em 30/01/2008 11:40 hs            
post anterior
 
""""Ola... estou com o seguinte problema....
 
tenho uma tabela na minha base de dados access, quem tem milhares de registros, eu preciso eliminar todos os registros que forem repetidos... eu nao gostaria de usar um looping pq demora por ter muitos registros no campo..
 
se alguem souber como ser feito com algum comando sql.. ou qualquer outra forma que seja bem rapido eu agradeço
 
Mais uma vez agradeço desde já""""
____________________________________________________________________________________
 
 
 
 
 
A respeito de eliminar os registros repetidos eu consegui fazer
 
agora alem de remover os repetidos, eu queria ir mais alem.... vamos la
 
os registros contem codigo, data e hora... alem de remover os registros identicos... eu gostaria de remover os registros q sejam do mesmo dia mais com 5 minutos de diferença tanto antes como depois.....
 
por exemplo:
 
se tiver um registro do Codigo 000001 do dia 28/01/2008 as 17:45... eu quero remover todos os outros registros q sejam do mesmo codigo e da mesma data das 17:39 as 17:44 e tbm das 17:46 as 17:51
 
não sei se consegui me explicar bem....
 
mais uma vez agradeço a ajuda de vcs

M A R C I O
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 30/01/2008 11:57 hs            
Qual o registro de referência? Se tivermos 5 registros, kd um cadastrado assim:
 
hora
17:40
17:41
17:42
17:43
17:44
 
quais os registros que vc queria eliminar? Do 17:41 ao 17:44??
   
M A R C I O
SÃO BERNARDO
SP - BRASIL
Postada em 30/01/2008 12:02 hs            
isso mesmo... o primeiro registro é a referencia

M A R C I O
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 30/01/2008 20:25 hs            
Cara, dando uma analisada até o momento, por sql, só vi esta solução:
 
1) Crie uma tabela temp igual a tabela original
2) Faça um INSERT assim:
 
INSERT INTO tabela_temp (ID,hora) SELECT ID, MIN(HORA) FROM tabela GROUP BY ID
 
Neste momento a tabela_temp tem os registros que vc precisa.
 
3) DELETE FROM Tabela
 
Apaga todos os registros da tabela
 
4) INSERT INTO tabela(ID,hora) SELECT ID, HORA FROM tabela_temp
 
Insere os registros da tabela_temp
 
Desta forma, só por SQL, vc consegue o que quer.
 
Veja se serve para vc, talvez a maior dificuldade seja fazer isso selecionando mais campos...aí teria que fazer mais selects no meio para obter o código único de cada registro inserindo assim na tabela_temp.
 
at+
   
M A R C I O
SÃO BERNARDO
SP - BRASIL
Postada em 31/01/2008 10:15 hs            
de acordo com oq eu pedi, isso resolveria 100% meus problemas..... mais eu não mencionei que eu so tenho q eliminar õs registros proximos uns dos outros
 
intão se tiver assim:
 
hora
17:40
17:41
17:42
17:43
17:44
19:00
19:01
19:02
19:03
19:04
 
tudo de um mesmo ID.... eu so posso eliminar das 17:41 ate as 17:44 e das 19:01 ate as 19:04... os dois registros 17:40 e 19:00 tem q permanecer
 
se eu fizer isso q vc me disse... so iria permanecer o registro das 17:40 correto?

M A R C I O
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 06/02/2008 11:18 hs            
Não sei se resolve o seu problema mas veja aí:
 
SELECT tabela.ID, (SELECT MIN(HORA) FROM tabela WHERE hora between #17:00# and #17:59# AND ID = 1) AS Expr1, (SELECT MIN(HORA) FROM tabela WHERE hora between #19:00# and #19:59# AND ID =1) AS Expr2
FROM tabela
WHERE ID = 1
GROUP BY tabela.ID;
 
Retorna 3 campos: ID, hora1, hora2
 
Serve?
     
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página