Добрый день. 
Хочу предложить вниманию пользователей ФМ по группировке таблиц. 
Если интересно, могу поделиться...
Вообще цель - тестирование данного ФМ.
Данный ФМ исправлен для использования Include структур.
Code:
FUNCTION Z_GROUP_TABLE.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(FIELDS_GROUP) TYPE  STRING
*"     REFERENCE(FIELDS_SUM) TYPE  STRING
*"  TABLES
*"      IT
*"----------------------------------------------------------------------
*" Функциональный модуль осуществляет группировку таблицы по указанным полям
*" FIELDS_GROUP, и суммирование указанных полей FIELDS_SUM.
*" Результат помещается в ту же таблицу, где содержались первоначальные данные.
*" Пример в программе: ZGROUP_TABLE.
field-symbols:
  <fld>            type any,
  <wa>             type any,
  <wa_if_data>     type any,
  <it_if_data>     type standard table,
  <it_if_data_new> type standard table.
types:
  abap_keyname  type c length 255.
types:
  begin of abap_keydescr,
    name        type abap_keyname,
  end   of abap_keydescr.
data:
  F_GROUP         type string,
  F_SUM           type string,
  p_key           type STANDARD TABLE OF abap_keydescr
                       WITH KEY name,
  w_key           type abap_keydescr,
  itab_g          type table of string with header line,
  itab_s          type table of string with header line,
  dref            type ref to data,
  itab_type       type ref to cl_abap_tabledescr,
  comp_fld        type cl_abap_structdescr=>component,
  comp_fld_inc    type cl_abap_structdescr=>component,
  comp_tab        type cl_abap_structdescr=>component_table,
  comp_tab_new    type cl_abap_structdescr=>component_table,
  comp_tab_inc    type cl_abap_structdescr=>component_table,
  struct_type     type ref to cl_abap_structdescr,
  struct_type_inc type ref to cl_abap_structdescr.
  F_GROUP = FIELDS_GROUP.
  F_SUM   = FIELDS_SUM.
  if F_GROUP <> '' and F_SUM <> ''.
    translate F_GROUP to upper case.
    translate F_SUM   to upper case.
    split F_GROUP at ',' into table itab_g.
    split F_SUM   at ',' into table itab_s.
    struct_type ?= cl_abap_typedescr=>describe_by_data( it ).
    comp_tab     = struct_type->get_components( ).
    loop at comp_tab into comp_fld.
      if comp_fld-as_include = 'X'.
        struct_type_inc ?= comp_fld-type.
        comp_tab_inc     = struct_type_inc->get_components( ).
        loop at comp_tab_inc into comp_fld_inc.
          append comp_fld_inc to comp_tab.
        endloop.
      endif.
    endloop.
    delete comp_tab where as_include = 'X'.
    refresh: comp_tab_new, p_key.
    loop at itab_g.
      loop at comp_tab into comp_fld.
        if comp_fld-name = itab_g.
          append comp_fld to comp_tab_new.
          w_key-name = comp_fld-name.
          append w_key to p_key.
        endif.
      endloop.
    endloop.
    loop at itab_s.
      loop at comp_tab into comp_fld.
        if comp_fld-name = itab_s.
          append comp_fld to comp_tab_new.
        endif.
      endloop.
    endloop.
    struct_type = cl_abap_structdescr=>create( comp_tab_new ).
    itab_type   = cl_abap_tabledescr=>create( p_line_type  = struct_type
                                              p_table_kind = cl_abap_tabledescr=>tablekind_std
                                              p_key        = p_key ).
    create data dref type handle itab_type.
    assign dref->* to <it_if_data>.
    assign dref->* to <it_if_data_new>.
    create data dref like line of <it_if_data>. assign dref->* to <wa_if_data>.
    create data dref like line of it.           assign dref->* to <wa>.
    create data dref like <it_if_data>.         assign dref->* to <it_if_data_new>.
    loop at it into <wa>.
      move-corresponding <wa> to <wa_if_data>.
      append <wa_if_data> to <it_if_data>.
    endloop.
    sort <it_if_data>.
    loop at <it_if_data> into <wa_if_data>.
      collect <wa_if_data> into <it_if_data_new>.
    endloop.
    refresh it.
    clear it.
    loop at <it_if_data_new> into <wa_if_data>.
      clear <wa>.
      move-corresponding <wa_if_data> to <wa>.
      append <wa> to it.
    endloop.
  endif.
ENDFUNCTION.