There is a statement which will help you get rid of duplicate entries from an internal table - and it may be good to know which entry is actually removed, the original one or the actual duplicate ? It's the duplicate of course, however, you do have control...
The sequence of the internal table plays an important role here. This is a simple key plus value example on the use of DELETE ADJACENT DUPLICATES FROM:
types: begin of ty_key_plus_value,
         key type c length 5,
         value type c length 5,
       end of ty_key_plus_value.
data: lt_key_plus_values type standard table of ty_key_plus_value,
      lw_key_plus_value type ty_key_plus_value.
lw_key_plus_value-key = 'ABC'.
lw_key_plus_value-value = 'VAL1'.
append lw_key_plus_value to lt_key_plus_values.
lw_key_plus_value-value = 'VAL2'.
append lw_key_plus_value to lt_key_plus_values.
lw_key_plus_value-value = 'VAL3'.
append lw_key_plus_value to lt_key_plus_values.
SORT lt_key_plus_values.
DELETE ADJACENT DUPLICATES FROM lt_key_plus_values
  COMPARING key.
The outcome of this exercise is an internal table with only 1 entry: Key="ABC" and value="VAL1".
So how can this be controlled ? Sort the table the other way around:
SORT lt_key_plus_values by key value descending. DELETE ADJACENT DUPLICATES FROM lt_key_plus_values COMPARING key.
The outcome of this would be an internal table with only 1 entry: Key="ABC" and value="VAL3".
