ABAP 中 分组汇总 并添加记录 到目标模型
时间: 2024-04-12 11:28:06 浏览: 23
在 ABAP 中,你可以使用 GROUP BY 子句对数据进行分组汇总,并将结果添加到目标模型中。以下是一个示例代码,用于演示如何按条件对内表数据进行分组汇总,并将结果添加到目标模型中:
```abap
DATA: lt_data TYPE TABLE OF ty_data, " 原始数据内表类型
lt_result TYPE TABLE OF ty_result, " 目标模型内表类型
ls_result TYPE ty_result, " 目标模型行类型
lv_sum TYPE i. " 汇总字段类型
APPEND INITIAL LINE TO lt_data ASSIGNING FIELD-SYMBOL(<fs_data>).
<fs_data>-amount = 100. " 假设这是一个数值字段
<fs_data>-category = 'A'. " 假设这是一个条件字段
APPEND INITIAL LINE TO lt_data ASSIGNING FIELD-SYMBOL(<fs_data>).
<fs_data>-amount = 200.
<fs_data>-category = 'B'.
APPEND INITIAL LINE TO lt_data ASSIGNING FIELD-SYMBOL(<fs_data>).
<fs_data>-amount = 150.
<fs_data>-category = 'A'.
SELECT category, SUM( amount )
FROM lt_data
INTO TABLE lt_result
GROUP BY category.
LOOP AT lt_result INTO ls_result.
WRITE: / '分类:', ls_result-category, ' 汇总数:', ls_result-amount.
ENDLOOP.
```
在这个示例中,我们创建了一个原始数据的内表 `lt_data`,并向其中添加了三行数据。然后,我们定义了目标模型的内表 `lt_result`,以及目标模型的行类型 `ls_result`。接下来,我们使用 SELECT 语句对 `lt_data` 进行分组汇总,根据 `category` 字段进行分组,并使用 SUM 函数对 `amount` 字段进行求和。最后,将分组汇总的结果添加到目标模型 `lt_result` 中。
在循环中,我们遍历目标模型 `lt_result`,并使用 `WRITE` 语句将每个分类的汇总数输出到屏幕上。
请注意,以上代码仅为示例,实际使用时你需要根据自己的需求定义内表类型和字段名,并根据具体的数据源和目标模型进行相应的调整。