FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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.
__________________
Be water my friend. |
#2
|
|||
|
|||
#3
|
||||
|
||||
Gracias Luis, a partir de esa página he construido esta instrucción:
Código:
SELECT * FROM TABLA WHERE CLIENTE+ARTICULO IN ( SELECT CLIENTE+ARTICULO FROM TABLA GROUP BY CLIENTE,ARTICULO HAVING COUNT(*) > 1 ) ORDER BY CLIENTE,ARTICULO,FECHA Seguimos mirando.....
__________________
Be water my friend. |
#4
|
||||
|
||||
Creo que tendrás que hacer un 'stored procedure'.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
A mi no me hables raro, ein?
Viendo que estaba la cosa complicada estoy haciendo un pequeño programa. Gracias y un saludo
__________________
Be water my friend. |
#6
|
|||
|
|||
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? |
#7
|
||||
|
||||
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
__________________
Be water my friend. |
#8
|
|||
|
|||
Una sentencia como la siguiente tendría que funcionar para lo que quieres hacer...
Última edición por Casimiro Notevi fecha: 02-05-2017 a las 19:28:07. |
#9
|
||||
|
||||
Creo que te has liado con la sentencia, he borrado los mensajes para que puedas ponerla bien.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
||||
|
||||
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
__________________
Be water my friend. |
#11
|
||||
|
||||
Por favor, que alguien la ponga
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
||||
|
||||
__________________
Be water my friend. |
#13
|
||||
|
||||
Te iba a pedir un rescate pero bueno... por esta vez lo dejaremos pasar.
Código:
Select * From CLIARTI T1 Where Exists (select * From CLIARTI T2 Where T1.cliente=t2.cliente And T1.articulo=t2.articulo And T1.fechaUV<t2.fechaUV) ORDER BY CLIENTE,ARTICULO,FECHAUV
__________________
Be water my friend. |
#14
|
|||
|
|||
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... |
#15
|
||||
|
||||
Cita:
Bueno, ya la ha puesto newtron. Gracias
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
problema al borrar varios registros | giocatore | Conexión con bases de datos | 6 | 27-04-2011 07:36:02 |
Borrar varios registros en un Dbrepeater | David82 | PHP | 0 | 09-09-2008 14:40:37 |
Borrar datos duplicados | Sr.Scorpion | Conexión con bases de datos | 4 | 20-06-2005 20:52:57 |
Borrar duplicados | jefraub | SQL | 2 | 22-03-2005 18:48:06 |
Borrar registros duplicados. | Adrian Murua | Firebird e Interbase | 3 | 07-10-2003 07:28:46 |
|