如何比较2个内部表并获取不同的记录

2020-08-14 11:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有2个具有相同结构的内部表。 ...

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

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


我有2个具有相同结构的内部表。 GT_AFPO GT_AFPO 。 我想循环GT_AFPO,而不是GT_AFPO2。

 选择a〜matnr a〜aufnr a〜psmng a〜wemng a〜amein a〜ltrmi b〜objnr c〜stat
   从afpo AS a
   在a〜aufnr = b〜aufnr上加入aufk AS b
   加入笑话AS c ON b〜objnr = c〜objnr
   表gt_afpo的对应字段
   对于gt_mard中的所有条目
   其中a〜matnr = gt_mard-matnr和a〜pwerk = p_werks
   AND c〜stat ='I0002'
   AND c〜inact =''
     。
 从afpo AS中选择​​a〜aufnr
       在a〜aufnr = b〜aufnr上加入aufk AS b
       加入笑话AS c ON b〜objnr = c〜objnr
      表gt_afpo2的对应字段
      其中a〜matnr = gw_mara-matnr和a〜pwerk = p_werks
     AND c〜stat ='I0076'AND c〜inact =''。
    
     将gt_afpo循环到gw_afpo,其中matnr = gw_mara-matnr。
       lv_qty_pro = lv_qty_pro + gw_afpo-psmng。
     ENDLOOP。
3条回答
SAP砖家
2020-08-14 12:14

REDUCE + FILTER可以完全满足您的问题。

否则,旧方法是:

将gt_afpo放到gw_afpo中,在哪里matnr =  gw_mara-matnr。
   如果不是line_exists(gt_afpo2 [aufnr = gw_afpo-aufnr])。
     lv_qty_pro = lv_qty_pro + gw_afpo-psmng。
   万一。
 ENDLOOP。

gt_afpo2被AUFNR声明为具有非唯一排序键的表。

但是您不应该在GT_AFPO2中使用组件MATNR吗? 而且您不能在一个SQL语句和一个内部表中这样做吗?

一周热门 更多>