[firebase-br] Excluir registros excedentes

Eduardo Jedliczka - TeamFB jedyfb em gmail.com
Qui Jun 5 11:21:32 -03 2008


esquece o SELECT TOP / FIRST... isto não é garantia que irá manter o
último... para funcionar, tem que ter um campo sequencial (generator) ou
uma PK que diferencie as "versões" diferente dos dados.

por isto é que eu pedi a estrutura das tabelas...

Sucesso,

Eduardo Jedliczka

Em Qua, 2008-06-04 às 23:20 -0300, Juvencio Leite escreveu:
> Obrigado pela ajuda, vou testar, mas o texto e auto-explicativo:
> 
> o objetivo e Dar um DELETE usando como condicao um campo chave, sendo que
> este mesmo e comparado com um subselect (select top ....) a quantidade de
> registros para o select top(N) me e fornecido atraves de outro select com
> count(*)
> 
> 2008/6/4 Eduardo Jedliczka - TeamFB <jedyfb em gmail.com>:
> 
> > o primeiro passo é saber qual é o último excedente de cada matrícula
> > depois deve-se fazer um select do tipo Select * from tabelha where chave
> > <> chave_ult_excedente_matricula.
> >
> > uma vez que isto, pode-se fazer:
> >
> > delete from tabela x where not exists (select first 1 y.chave from
> > tabela y where x.chave <> y.chave_ult_execendente)
> >
> > PS: quando pedir este tipo de ajuda coloque a estrutura da tabela, e a
> > referência entre PKs, FKs, e índices...
> >
> > Sucesso
> >
> > Eduardo
> >
> > Em Qua, 2008-06-04 às 22:29 -0300, Juvencio Leite escreveu:
> > > Salve Galera, a noite e boa e tranquila! Estou com dificuldades com um
> > > delete especifico. Tenho uma tabela de logs, que salva toda alteração/
> > > inserção importante no sistema so que esta com + de 300 mil registros e
> > > preciso deletar os excedentes deixando somente o ultimo de cada matricula
> > ,
> > > de acordo com os parametros abaixo, tentei usar da forma abaixo mas não
> > > funcionou:
> > > Delete OCORRENCIAS_log
> > > WHERE  OCO_OCORRENCIA =
> > > (select top 18 OCO_OCORRENCIA from OCORRENCIAS_log
> > > WHERE OCO_ESTABELECIMENTO = '001'
> > > AND OCO_MATRICULA = '00000738'
> > > AND OCO_CODIGO = '7'
> > > group by OCO_OCORRENCIA having count(*)>1)
> > >
> > > alguem tem uma dica ou soluçao em sql, pram este problema?
> > >
> > > --
> > > ====================================
> > > Desenvolvimento para aplicativos comerciais
> > > com eficiência e segurança.
> > > 'A Análise determina a necessidade.
> > > Se nunca andou de Helicoptero,
> > > isso não significa que
> > > o mesmo não sirva para nada.'
 <>  <خوفنسيو يته دا سيلفا
> > >
> > > ===================================
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 
> 
> 
> 
> -- 
> ====================================
> Desenvolvimento para aplicativos comerciais
> com eficiência e segurança.
> 'A Análise determina a necessidade.
> Se nunca andou de Helicoptero,
> isso não significa que
> o mesmo não sirva para nada.'
 <خوفنسيو يته دا سيلفا
> 
> ===================================
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista