Borrar registros duplicados evaluando varios campos
Hola a tod@s.
Necesitaría una consulta SQL para eliminar registros duplicados evaluando varios campos y manteniendo el que tenga la fecha más reciente. Por ejemplo, tengo estos registros: CLIENTE ARTICULO FECHA 000001 001 01/01/2017 000002 001 01/02/2017 000001 001 15/01/2017 000002 001 31/01/2017 necesitaría borrar los registros que tengan duplicados el campo cliente y artículo y, dentro de eso, que los registros que se eliminen sean los de fecha más antigua y mantenga el más reciente. En este ejemplo tendría que borrar el primer y cuarto registro. Gracias y un saludo. |
|
Gracias Luis, a partir de esa página he construido esta instrucción:
Código:
SELECT * FROM TABLA Seguimos mirando..... |
Creo que tendrás que hacer un 'stored procedure'.
|
Cita:
Viendo que estaba la cosa complicada estoy haciendo un pequeño programa. Gracias y un saludo |
Yo creo que esposible hacerlo en una sola sentencia.
Otra cosa el rendimiento que pueda tener. Estoy fuera el fin de semana y no tengo ordenador, si no te urge mucho el martes lo pruebo y te gigo algo. Que base de datos utilizas? |
Cita:
De todas formas si te apetece hacerlo y ya me lo guardo la base de datos es ElevateDB, no es muy conocida pero es compatible SQL 2003. Gracias y un saludo |
Una sentencia como la siguiente tendría que funcionar para lo que quieres hacer...
|
Cita:
|
Manel.
Gracias por la instrucción. Parece que funciona correctamente y no es excesivamente lenta. De una forma o de otra el rendimiento tampoco me importa demasiado porque es para usarla muy puntualmente. Saludos |
Por favor, que alguien la ponga :o
|
Cita:
|
Te iba a pedir un rescate pero bueno... por esta vez lo dejaremos pasar. :D:D
Código:
Select * From CLIARTI T1 |
Perdona Casimiro, pero me ha pasado dos veces que al poner "Resaltar sintaxis sql" me cortaba la sentencia en la última línea, por eso la he puesto directamente en mi tercer post.
En la vista previa se veia bien... |
Cita:
Bueno, ya la ha puesto newtron. Gracias ^\||/ |
La franja horaria es GMT +2. Ahora son las 19:43:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi