是否可以在波纹管内部表上应用总和和分组

2020-09-08 03:31发布

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

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


嗨,

我有ITAB1内部表,基本上我想减去D000103物料的返回值(负)以达到ITAB_Final,什么是实现该目标的最佳方法?

(4.7 kB)

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

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


嗨,

我有ITAB1内部表,基本上我想减去D000103物料的返回值(负)以达到ITAB_Final,什么是实现该目标的最佳方法?

(4.7 kB)
付费偷看设置
发送
5条回答
风早神人
1楼-- · 2020-09-08 04:33

您可以尝试对SQL本身求和:

从材料中选择材料,然后从dbtab组中选择sum(qty)。

或者您可以循环itab1,求和并移动

SAP小黑
2楼-- · 2020-09-08 04:07

它可以与任何> = 7.40 SP 8版本一起使用。它也可以做得更短:

 DATA(itab_final)= VALUE lty_mat_qty_tts(
对于itab1
组的 OF GROUP BY(material = -material)
(material = -material
qty = REDUCE#(INIT q TYPE i FOR < line2> IN GROUP NEXT q = q + -qty)))))。
樱桃小丸子0093
3楼-- · 2020-09-08 04:16

如果您使用的是现代ABAP系统(> = 7.50),则可以使用:

类型以lty_mat_qty开头。
   类型材料类型字符串。
   输入数量,输入i。
   键入lty_mat_qty的结尾。

   类型lty_mat_qty_tt类型lty_mat_qty的标准表,带有空键。

   类型lty_mat_qty_tts具有唯一密钥材料的lty_mat_qty类型排序表。

   数据itab_final类型lty_mat_qty_tts。

   数据(itab1)
     =值lty_mat_qty_tt(
         (材料='D000101'数量= 500)
         (材料='D000102'数量= 120)
         (材料='D000103'数量= 300)
         (材料='D000103'数量= -50)
     )。

   在itab1处循环,按 -material分配字段符号()组。

     插入值#(
             物料= -物料
         )到表itab_final中分配字段符号()。

     在组处循环,分配字段符号()。
       -数量= -数量+ -数量。
     结束循环。

   结束循环。

   cl_demo_output => display_data(
     出口
       值= itab_final
   )。

 
天桥码农
4楼-- · 2020-09-08 04:20

当然,最好由数据库来完成工作,但这并不总是合适的。 由于许多原因,收集可能是最好的方法。 不知道确切的规范,就无法分辨。

SAP砖家
5楼-- · 2020-09-08 04:06

我使用Collect语句解决了这个问题。

一周热门 更多>