SAPфорум.RU https://sapboard.ru/forum/ |
|
Loop group by https://sapboard.ru/forum/viewtopic.php?f=13&t=100305 |
Страница 1 из 1 |
Автор: | Haku_chan [ Сб, мар 11 2023, 13:36 ] |
Заголовок сообщения: | Loop group by |
Всем привет! Подскажите мне, пожалуйста по оператору loop group by. У меня есть большой луп по таблице, содержащей данные из ACDOCA. В одном из полей таблицы нужно получить HSL сгруппированную по PS_PSP_PNR и ALV-ZUONR. Подскажите, как это внутри главного лупа по таблице написать? Я не пользовалась этим оператором. Главный луп : Code: LOOP AT lts_data ASSIGNING <ls_data>. ... Выборки... ... Луп с группировкой по этой же таблице... .... LOOP AT lts_data ASSIGNING <ls_data> GROUP BY ( ps_psp_pnr = <ls_data>-ps_psp_pnr zuonr = <ls_data>-zuonr ) INTO DATA(lts_hsl_group). DATA(lv_total_hsl) = 0. LOOP AT GROUP lts_hsl_group ASSIGNING field-symbol(<lts_hsl_group>). lv_total_hsl = lv_total_hsl + <ls_data>-hsl. ENDLOOP. ENDLOOP. .... Endloop. Подскажите, как сделать, чтобы работало, чтобы в поле таблицы главной сохранялась сгруппированная сумма. Совсем запуталась. |
Автор: | baboon [ Пн, мар 13 2023, 09:39 ] |
Заголовок сообщения: | Re: Loop group by |
Если я правильно понял, то во всех строках каждой группы, в "одном из полей таблицы" будет одно и то же значение суммы? 1. Замените объявление DATA(lv_total_hsl) = 0 на соответствующий тип, т.к. в вашем случае LV_TOTAL_HSL будет целочисленным (если только это не было задумано изначально) 2. Вместо INTO DATA(lts_hsl_group) сделайте ASSIGNING FIELD-SYMBOL(<lts_hsl_group>), чтобы иметь доступ именно к таблице LTS_DATA 3. После вычисления суммы, придётся сделать ещё один цикл по LOOP AT GROUP <lt_hsl_group>, чтобы записать значение суммы в "одно из полей таблицы", т.к. доступа к полям из <ls_data> у вас нет LOOP AT lts_data ASSIGNING <ls_data> GROUP BY (ps_psp_pnr = <ls_data>-ps_psp_pnr zuonr = <ls_data>-zuonr ) ASSIGNING FIELD-SYMBOL(<lt_hsl_group>). DATA(lv_total_hsl) = VALUE тип_одного_поля( ). LOOP AT GROUP <lt_hsl_group> ASSIGNING FIELD-SYMBOL(<lts_hsl_group>) lv_total_hsl = lv_total_hsl + <lts_hsl_group>-hsl. ENDLOOP. LOOP AT GROUP <lt_hsl_group> ASSIGNING <lts_hsl_group>. <lts_hsl_group>-одно_поле = lv_total_hsl. ENDLOOP. ENDLOOP. Ну, как-то, так... |
Автор: | Удав [ Ср, мар 22 2023, 23:00 ] |
Заголовок сообщения: | Re: Loop group by |
Сама задача получить сумму по группе в отдельном поле внутренней таблицы выглядит странно. Можно озвучить постановку задачи от пользователей? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |