Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

removal of duplicated records

Former Member
0 Kudos

..

Message was edited by:

Padma v

4 REPLIES 4

Former Member
0 Kudos

Hi ,

Can you please specify what exactly is the problem you are facing , as just pasting the code does not serve much purpose.

Regards ,

Arun

Former Member
0 Kudos

Hi,

You can remove duplicate records by:

1. Sort the table

2. delete adjacent duplicates.

eg:

SORT it_ebeln BY ebeln bwart.

DELETE ADJACENT DUPLICATES FROM it_ebeln COMPARING ebeln bwart mtart .

Former Member
0 Kudos

if u want to remove duplicate rec from internal table.

sort itab by f1 f2.

delete adjacent duplicates from itab comparing f1 f2.

Former Member
0 Kudos

HI,

DELETE ADJACENT DUPLICATES FROM itab.

Additions

1. ... COMPARING f1 f2 ...

2. ... COMPARING ALL FIELDS

Effect

Deletes neighboring, duplicate entries from the internal table itab . If there are n duplicate entries, the first entry is retained and the other n - 1 entries are deleted.

Two lines are considered to be duplicated if their default keys match.

The return code value is set as follows:

SY-SUBRC = 0 At least one duplicate exists, at least one entry deleted.

SY_SUBRC = 4 No duplicates exist, no entry deleted.

Addition 1

... COMPARING f1 f2 ...

Effect

Two lines of the internal table itab are considered to be duplicates if the specified fields f1 , f2 , .... match.

Addition 2

... COMPARING ALL FIELDS

Effect

Two lines are considered to be duplicates if all fields of the table entries match.

Notes

The DELETE ADJACENT DUPLICATES statement is especially useful if the internal table itab is sorted by fields (whether in ascending or descending order) which were compared during duplicate determination. In this case, the deletion of neighbouring duplicates is the same as the deletion of all duplicates.

If a comparison criterion is only known at runtime, it can be specified dynamically as the content of a field name by using COMPARING ... (name) ... . If name is blank at runtime, the comparison criterion is ignored. If name contains an invalid component name, a runtime error occurs.

Comparison criteria - statistically or dynamically specified - can be further restriced by specifying the offset and/or length.

Note

Performance

Deleting a line from an internal table incurs index maintenance costs which depend on the index of the line to be deleted. The runtime depends on the line width of the table.

For example, deleting a line in the middle of an internal table with 200 entries requires about 10 msn (standardized microseconds).

Deleting a range of entries with " DELETE itab FROM idx1 TO idx2. " deleting a set of entries with " DELETE itab WHERE ... " only incur index maintenance costs once. Compared with a LOOP , which deletes line-by-line, this is much faster.

To delete neighboring, duplicate entries from an internal table, use the variant " DELETE ADJACENT DUPLICATES FROM itab. " instead of LOOP constructions.

Reward if useful

Regards,

Pritha.