Find unique values in internal table
Ever since 7.40 SP08 there is a short way to find unique values in an internal table without looping and comparing the whole table.
DATA: lt_unique TYPE STANDARD TABLE OF fieldtype.
lt_unique = VALUE #(
FOR GROUPS value OF <fs_line> IN it_itab
GROUP BY <fs_line>-field WITHOUT MEMBERS ( value ) ).
The <fs_line>-field is your unique key by which you want to reduce the table. Only the unique values of <fs_line>-field will be present in the table afterwards. If you have more than one field that makes up your unique key, you’ll have to alter the statement.
DATA: lt_unique TYPE STANDARD TABLE OF fieldtype.
lt_unique = VALUE #(
FOR GROUPS value OF <fs_line> IN it_itab
GROUP BY ( key1 = <fs_line>-field1 key2 = <fs_line>-field2 ) WITHOUT MEMBERS ( field1 = value-key1 field2 = value-key2 ) ).
The fields key1 & key2 are a fixed part of the statement, but field1 & field2 would correspond to your real fields. Instead of an upfront declaration you could use a tabletype instead of the hashtag in the VALUE statement.