在AMDP中选择联接查询

2020-08-16 08:20发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 任何人都可以帮助我修...

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

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


大家好,

任何人都可以帮助我修复以下查询。

我正在使用AMDP,所以我需要使用选择连接条件在AMDP中编写选择查询,以便可以在内部表中获取过滤后的值。 下面是我在旧的abap程序中编写的代码。 请让我知道我们如何在AMDP中转换相同的代码。

从vbrp中将vbeln,posnr,parvw,kunnr选择到表@data(lt_vbrp1)中
 对于lt_itab中的所有条目
 其中vbeln = lt_itab-aubel和posnr = lt_itab-aupos且parvw ='WE'。


 *-从标题获取值(此处标题值存储在000000行项目中)
 对于lt_itab中的所有条目,从vbrp中选择vbeln,posnr,parvw,kunnr到表@data(lt_vbrp2)中
 其中vbeln = lt_itab-aubel,posnr ='000000',parvw ='WE'。

 按vbeln posnr排序lt_vbrp1。
 按vbeln posnr排序lt_vbrp2。

 在lt_itab处循环进入data(ls_itab)。
 用键vbeln = ls_itab-aubel posnr = ls_itab-aupos二进制搜索将表lt_vbrp1读入data(ls_vbrp)。
 如果sy-subrc eq 0。
 *将数据附加到itab_final。
 其他。
 使用键vbeln = ls_itab-aubel posnr ='000000'二进制搜索将表lt_vbrp2读入ls_vbrp。
 *将数据附加到itab_final。
 万一。

 清除ls_vbrp。
 结束循环。


 

预先感谢。

-Vijendra

3条回答
闻人可可
2020-08-16 08:57

您好 VK

首先,VBRP表不包含 PARVW字段。

这是个主意,假设您的确是VBPA,并且您要提供LT_ITAB作为AMDP的参数。

 SELECT
   当b〜vbeln不为空的情况下,然后b〜vbeln否则,c〜vbeln以vbeln结尾,
   当b〜posnr不为空时,然后b_posnr以ELSE c〜posnr END作为posnr的情况,
   当b〜parvw不为空的情况下,然后b〜parvw否则为c_parvw结束为parvw,
   b〜kunnr不为空时的情况,然后b〜kunnr否则c〜kunnr以kunnr结尾
   来自:it_itab AS a
   左外联接vbpa AS b
     ON b〜vbeln = a〜aubel
     AND b〜posnr = a〜aupos
     AND parvw ='我们'
   左外连接vbpa AS c
     ON b〜vbeln = a〜aubel
     AND b〜posnr = 0
     AND parvw ='我们'
   在哪里(b〜parvw不为空或(b〜parvw为NULL和c〜parvw不为NULL))。

亲切的问候,

Mateusz

一周热门 更多>