Начиная с версии ABAP 7.4 появилась возможность быстро и эффективно извлечь уникальные значения определенного столбца из таблицы.
В общем случае код выглядит следующим образом
1 2 3 4 5 6 7 8 |
DATA lt_unique TYPE STANDARD TABLE OF fieldtype. lt_unique = VALUE #( FOR GROUPS value OF <line> IN it_itab GROUP BY <line>-field WITHOUT MEMBERS ( value ) ). |
Ниже примеры извлечения таблицы и ренджа уникальных значений TADIR-DEVCLASS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
DATA lt_tadir TYPE TABLE OF tadir. DATA lt_devclass TYPE TABLE OF tadir-devclass. DATA lr_devclass TYPE RANGE OF tadir-devclass. SELECT * INTO TABLE lt_tadir FROM tadir WHERE devclass LIKE 'Z%'. " Таблица уникальных значений lt_devclass = VALUE #( FOR GROUPS devclass OF <wa> IN lt_tadir GROUP BY <wa>-devclass ASCENDING WITHOUT MEMBERS ( devclass ) ). " Рендж уникальных значений lr_devclass = VALUE #( FOR GROUPS devclass OF <wa> IN lt_tadir GROUP BY <wa>-devclass ASCENDING WITHOUT MEMBERS ( sign = rs_c_range_sign-including option = rs_c_range_opt-equal low = devclass ) ). |
Присоединиться к обсуждению...