ABAP字符串模板-具有GROUP BY

问题描述

我指的是这个问题:LOOP AT... GROUP BY with dynamic group key

我也想做一些动态的GROUP-BY-Aggregation。

我想像以下代码片段那样对GROUP-BY-Statement进行动态化:

      WHEN 'vkorg'.

        LOOP AT ls_output-merged_data INTO ls_tmp
          GROUP BY (  sales_org = ls_tmp-sales_org
                      group_quantity = GROUP SIZE )

           ASCENDING ASSIGNING FIELD-SYMBOL(<fs_tmp_2>).

          lt_tmp_dim1 = VALUE #( BASE lt_tmp_dim1 (
                              sales_org = <fs_tmp_2>-sales_org
                              group_quantity  = <fs_tmp_2>-group_quantity
                              ) ).
        ENDLOOP.

目前我对此有些口吻:

  LOOP AT ls_output-merged_data INTO ls_tmp
      GROUP BY COND #( WHEN iv_dim1 EQ 'vkorg' THEN |{ ls_tmp-sales_org }| ) 


                               ASCENDING ASSIGNING FIELD-SYMBOL(<total_group>).


    LOOP AT GROUP <total_group> ASSIGNING FIELD-SYMBOL(<line_data>).
      ASSIGN COMPONENT 'vkorg' OF STRUCTURE <line_data> TO FIELD-SYMBOL(<vkorg>).
      EXIT.
    ENDLOOP.




  ENDLOOP.

这里的问题是,我还需要GROUP SIZE字段。但是,我无法将其放入嵌入式表达式中,例如:| {ls_tmp-sales_org GROUP SIZE} |

我尝试了几种位置和语法,但无法使其正常工作。

有人以前做过类似的事情并且可以帮助我吗?

解决方法

感谢Sandra,现在可以使用了:

  LOOP AT ls_output-merged_data INTO ls_tmp
      GROUP BY ( sales_org = COND #( WHEN iv_dim1 EQ 'vkorg' THEN |{ ls_tmp-sales_org }| ) 
                 group_quantity = GROUP SIZE  )

           ASCENDING ASSIGNING FIELD-SYMBOL(<total_group>).




  ENDLOOP.