2020-09-08 03:31发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我有ITAB1内部表,基本上我想减去D000103物料的返回值(负)以达到ITAB_Final,什么是实现该目标的最佳方法?
您可以尝试对SQL本身求和:
从材料中选择材料,然后从dbtab组中选择sum(qty)。
或者您可以循环itab1,求和并移动
它可以与任何> = 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)))))。
如果您使用的是现代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 )。
当然,最好由数据库来完成工作,但这并不总是合适的。 由于许多原因,收集可能是最好的方法。 不知道确切的规范,就无法分辨。
我使用Collect语句解决了这个问题。
最多设置5个标签!
您可以尝试对SQL本身求和:
或者您可以循环itab1,求和并移动
它可以与任何> = 7.40 SP 8版本一起使用。它也可以做得更短:
如果您使用的是现代ABAP系统(> = 7.50),则可以使用: >
当然,最好由数据库来完成工作,但这并不总是合适的。 由于许多原因,收集可能是最好的方法。 不知道确切的规范,就无法分辨。
我使用Collect语句解决了这个问题。
一周热门 更多>