Supongamos que nos pasan una tabla con muchísimos registros, de los cuales pueden haber duplicados. Necesitamos tener un solo registro de cada tipo, por lo que nos interesa eliminar de la tabla los duplicados. Para ello, podemos hacer lo siguiente:
- ordenamos la tabla -> SORT tabla_interna.
- eliminamos los duplicados -> DELETE ADJACENT DUPLICATES FROM tabla_interna.
Este delete eliminaría los duplicados de los registros, pero sólo aquellos que coincidan en todos los campos. Si cada registro se compone de varios campos, tienen que coincidir en todos para ser eliminados.
Si lo que nos interesa es eliminar registros que coincidan sólo en uno, dos, ... n campos, lo especificariamos de la siguiente forma.
- ordenamos la tabla -> SORT tabla_interna.
- eliminamos los duplicados -> DELETE ADJACENT DUPLICATES FROM tabla_interna COMPARING campo1 campo2 ... campoX.
dónde cada campo es el nombre del campo en la tabla interna.
Por ejemplo.
Tenemos la estructura siguiente, formada por tres campos:
Ahora queremos aplicar lo explicado antes, pero para que tenga en cuenta sólo el campo MATKL a la hora de eliminar duplicados.
- SORT gt_fich_gr_articulos.
- DELETE ADJACENT DUPLICATES FROM gt_fich_gr_articulos COMPARING MATKL.
Se eliminarian todos los registros duplicados excepto uno, el primero de la ordenación, con el mismo campo MATKL, aunque los dos campos siguientes sean diferentes.
Gracias a Samuel Artiles.
1 comentario:
Muchas gracias por la informacion! me fue muy util!
Publicar un comentario