SQL PARA DELETAR REGISTROS NA TABELA

USUARIO.EXCLUIDOS 09/06/2007 14:37:19
#220484
Senhores, seria possivel com uma sql deixar na tabela somente os tres ultimos registros de cada codigo existente na tabela.
Estes codigos são referentes ao emprestimo de ferramentas, não preciso manter na tabela o historico tão grande, os ultimos tres ou 10 registro para cada codigo é suficiente.
Estou tentanto adaptar algo assim:

BancoDeDados.Execute ("delete [dados]where codigo not in (select top 10 codigo from dados order by codigo DESC)")

Mas não consegui fazer funcionar...
sds geronimo

USUARIO.EXCLUIDOS 09/06/2007 15:15:38
#220486
BD Access não tem a função TOP.
Tental algo assim:

DELETE FROM cliente WHERE id_cliente <= (SELECT MAX(id_cliente)-3 FROM cliente)

Exclui para mim os dados da cliente onde o id_cliente seja Menor ou igual a (seleciona o maior id_cliente da cliente e subtraia 3 deste valor)


Embora eu acredite que no seu caso seja meais interessante ter um log baseado em Dias (Somente registro dos últimos 7 dias etc ..., ae vc pode rodar o delete na hr que abrir o programa e não precisaria mais)
USUARIO.EXCLUIDOS 09/06/2007 19:35:46
#220505
Emerson vou testar, quando a sugestão de colocar para deletar registros dos ultimos 7 dias não é possivel neste caso, porque alguns codigos não tem uma saida tão frequente, por isso a necessidade de manter pelo menos os ultimos registros.

Tópico encerrado , respostas não são mais permitidas