Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: r5afondo en 01 de Agosto de 2007, 06:21:21 pm

Título: Eliminar TODOS los duplicados
Publicado por: r5afondo en 01 de Agosto de 2007, 06:21:21 pm
Hola!

Voy a explicar una duda que me ha surgido, a ver si alguien puede echarme una mano.

Tengo una tabla interna de la que quiero eliminar los registros que tengan repetido un conjunto de campos.

Con la instrucción:

DEJETE ADJACENT DUPLICATES FROM <tabla> COMPARING <campos> ; se eliminan duplicados pero conserva un registro.

Necesitaría que en el momento que hubiese duplicados, me borrara todos los registros...

Alguna idea?

Muchas gracias!  ;)
Título: Re: Eliminar TODOS los duplicados
Publicado por: Nuria en 01 de Agosto de 2007, 09:50:25 pm
Hola,

¿Lo has ordenado primero?

SORT <tabla> BY <campo1> <campo2> DESCENDING.
DELETE ADJACENT DUPLICATES FROM <tabla> COMPARING <campo1>.

A modo recordatorio, esta instrucción elimina los registros que hay duplicados, y lo que hace es guardar el primero que encuentra de cada campo que has comparado.
Título: Re: Eliminar TODOS los duplicados
Publicado por: r5afondo en 01 de Agosto de 2007, 10:07:22 pm
Lo que obtengo con el DELETE DUPLICATES es que si, por ejemplo, hay 4 registros duplicados, se borran 3 y conserva uno; pero lo que me interesaría es que se borraran los 4.

He estado haciendo pruebas para hacerlo "a mano" y lo he implementado mediante un LOOP, un DELETE WHERE y tablas auxiliares...y bueno, parece que funciona, pero lo que yo estaba buscando era una solución un poco más "elegante"

Saludos  :)