PDA

Ver la Versión Completa : Eliminar Duplicados en ITAB


agaraban
08/11/06, 19:08:35
Buenas Trades.

Necesito eliminar TODOS los datos duplicados comparando los dos primeros campos de una tabla intena.

ejmp.

1 1 4 5
1 1 6 6
2 2 5 6
3 3 9 9

donde

1 1 4 5
1 1 6 6

deben ser eliminados por que son iguales los campos
1 1
1 1 .


Gracias

oarranzli
09/11/06, 05:54:30
Hola agaraban:

Puedes consultar a través de la transacción ABAPHELP la sentencia DELETE ADJACENT DUPLICATES.

Saludos,
Óscar

chamoe
09/11/06, 08:55:02
con esta sentencia lo borra solo si es igual(todo el campo), mira a nivel de caracter, te lo vas a tener que montar para que sea o otro campo o hacerlo con deletes,

puedes cojer 2 variables para ir comparando si haces campo(2), te cojera las dos primeras posiciones del campo, comparas y si es igual lo borras, es un poco mas engorroso y costoso, pero con el delete adjacents no lo puedes hacer

cflorimon
17/11/06, 17:33:38
Saludos.

En uno de mis programas he utilizado el delete adjacent de la siguiente manera:

SORT ITPED
DELETE ADJACENT DUPLICATES FROM ITPED COMPARING EBELN.

En el comparing puedes ponerle los dos primeros campos que dices y ese será el criterio para determinar cuales registros están duplicados o no.

DCErick
18/11/06, 03:26:09
Mira amimelo explicaron de la siguiente manera y no me quedó duda jeje..

Veamos Supongamos tu tabla tiene los campos....

Factura material texto
-------- --------- ------
1001 800045 Latas de Pintura
1001 800046 Brochas
1002 899229 Focos
1001 800045 Latas de Pintura

Al hacer DELETE ADJACENT DUPLICATES, no va a pasar nada, puesto que los registros que se repiten "no son adjacentes", es decir...no están ordenados.... Ahora...si hacemos un SORT por Factura y material...

Factura material texto
-------- --------- ------
1001 800045 Latas de Pintura
1001 800045 Latas de Pintura
1001 800046 Brochas
1002 899229 Focos

En este caso, el DELETE ADJACENT DUPLICATES funciona y nos deja como resultado....

Factura material texto
-------- --------- ------
1001 800045 Latas de Pintura
1001 800046 Brochas
1002 899229 Focos

Ahora....que pasa si lo queremos es tener solamente un material por código....

Hacemos lo siguiente....Considerando los campos

Factura material texto
-------- --------- ------
1001 800045 Latas de Pintura
1001 800045 Latas de Pintura
1001 800046 Brochas
1002 899229 Focos

DELETE ADJACENT DUPLICATES FROM T_TABLA COMPARING FACTURA.

Es este caso, se compara solamente la igualdad del campo Factura, lo cual provocaría...

Factura material texto
-------- --------- ------
1001 800045 Latas de Pintura
1002 899229 Focos