Здравствуйте! Помогите разобраться в следующей ситуации. Нужно сгруппировать данные по двум полям и произвести суммирование и конкатенацию строк.
Есть тип (или глобальная таблица, не знаю как тут правильно сказать) fi_excel, который состоит из множества полей
В частности если сократить
Code:
TYPES: BEGIN OF fi_excel,
ndz TYPE excel-ndz,
npdz TYPE excel-ndz,
p_sumnds TYPE excel-p_sumnds,
p_sum TYPE excel-p_sum,
p_nom TYPE excel-p_nom,
END OF fi_excel,
Code:
TYPES ts_excel TYPE fi_excel
TYPES tt_excel TYPE TABLE OF ts_excel
DATA: lt_temp_excel TYPE tt_excel
1) Нужно сгруппировать данные по полям NDZ, NPDZ.
2) Суммировать значения в полях P_SUMNDS, P_SUM.
3) Склеить через запятую поле P_NOM
Грубо говоря есть данные вида:
NDZ | NPDZ | P_SUMNDS | P_SUM | P_NOM
111 | 1 | 525 | 525 | 117
111 | 1 | -525| -525 | 118
Должно получиться
NDZ | NPDZ | P_SUMNDS | P_SUM | P_NOM
111 | 1 | 0 | 0 | 117, 118
При этом на вход я получаю такую же по структуре lt_excel
Первое что делаю, это копирую во временный массив
Code:
APPEND LINES OF lt_excel TO lt_temp_excel.
REFRESH lt_excel.
Далее нужно из временной таблицы с необходимым суммирование и конкатенацией записать данные в результирующую таблицу...
И вот тут у меня ступор, как это сделать? Где ни смотрю в темах, используется конструкция LOOP с применением SORT до цикла.
Code:
SORT lt_temp_excel BY ndz,npdz.
LOOP AT lt_temp_excel.
....
END LOOP.
Если не затруднит, поможете разобраться?
Я понимаю прекрасно, как написать запросом SELECT с GROUP BY в SQL. А вот в ABAP не приходилось программировать.