SAP ABAP:内部表查询

2020-09-19 08:48发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我是SAP ABAP的新手。 您能帮我解决以下问题吗?

我有一个具有非唯一值的内部表,如下所示。

我需要计算每种材料的最小价格和百分比变化,并填充接下来的两列,如下所示。

我尝试通过选择查询实现此操作,但没有成功。 还有其他方法可以修改内部表以适应更改。

谢谢。

谢谢你,
阿卜舍克

(3.5 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我是SAP ABAP的新手。 您能帮我解决以下问题吗?

我有一个具有非唯一值的内部表,如下所示。

我需要计算每种材料的最小价格和百分比变化,并填充接下来的两列,如下所示。

我尝试通过选择查询实现此操作,但没有成功。 还有其他方法可以修改内部表以适应更改。

谢谢。

谢谢你,
阿卜舍克

(3.5 kB)
付费偷看设置
发送
5条回答
haha101010
2楼-- · 2020-09-19 09:20

更好地使用LOOP AT GROUP BY。

Alawn_Xu
3楼-- · 2020-09-19 09:17

嗨,

使用类似此参考的控制级别语句: https://wiki.scn.sap.com/wiki/display/ABAP/Control+Level+Statements+in+ABAP

1。 排序itab比较matnr netpr(降序)

2。 循环播放itab。

在matnr的末尾。

-> netpr的这一行最小值

endat。

endloop。

葫芦娃快救爷爷
4楼-- · 2020-09-19 09:18

使用LOOP AT ASSIGNING而不是MODIFY,将更加简单有效。

这是带有表达的当代。

如果您格式化代码示例,它将更具可读性。

bbpeas
5楼-- · 2020-09-19 09:24

嗨,

首先,您需要计算itab中每种材料的最小值。 为此,您需要创建一个临时表,以最低的价格收集每种材料。 下面的示例代码

类型:t_min的开头

matnr类型matnr,

最小型netpr,

t_min结束

数据:t_min的lt_min类型表。

数据:ls-min类型t_min。

数据:w_index类型为i。

在itab处循环进入ls_itab。 " itab是您的内部表。

使用键matnr = ls_itab-matnr将表lt_min读入ls_min。

w_index = sy-tabix

如果sy-subrc <>0。"第一次

ls_min-matnr = ls_itab-matnr。

ls_min-min = ls_min-netpr。

将ls_min附加到lt_min。

其他。

如果ls_itab-netpr

ls_min-netpr = ls_itab-netpr。

从ls_min索引w_index修改lt_min。

endif。

endif。

endloop。

计算完所有材料的最小值后,只需再次循环以更新原始表即可

将itab循环到ls_itab。

w_index = sy-tabix。

使用键matnr = ls_itab-matnr将表lt_min读入ls_min。

ls_itab-min_price = ls_min-min。

*现在计算人数

ls_itab-perc =(((ls_itab-netpr-ls_itab-min_price)* 100)/ls_itab-min_price。

从ls_itab索引w_index修改itab。

endloop。

我希望这会有所帮助。

苏格拉底

一周热门 更多>