天天看点

SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】语句介绍代码示例案例代码演示效果演示

 💬个人网站:【芒果个人日志】​​​​​​

 💬原文地址:SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】 - 芒果个人日志 (wyz-math.cn)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。

💅文章概要:本文主要介绍SAP ABAP中OPEN SQL的FOR ALL ENTRIES IN语句

🤟每日一言:生活熬过苦难,才有回忆的笑谈。 愿你成为自己的太阳,无需凭借谁的光。

目录

语句介绍

代码示例

案例代码演示

效果演示

1. BSEG数据库表数据

2. BSIS数据库表数据

语句介绍

使用FOR ALL ENTRIES IN语句将不能使用join的聚集表(例如BSEG)或者需要使用select的内表与内表串联。

代码示例

SELECT...FOR ALL ENTRIES IN <itab> WHERE <condition>
           

案例代码演示

案例简介:由于BESG不能和BSIS做内联,所以先将BSIS要获取的内容放到内表中,然后用FOR ALL ENTRIES IN来串联

REPORT ZWYZTEST_FOR_MANGO.

DATA:GT_BSEG TYPE TABLE OF BSEG.
DATA:GT_BSIS TYPE TABLE OF BSIS.
DATA:GS_BSIS TYPE BSIS.

SELECT * FROM BSEG INTO CORRESPONDING FIELDS OF TABLE GT_BSEG UP TO 10 ROWS.

SELECT * FROM BSIS INTO CORRESPONDING FIELDS OF TABLE GT_BSIS  FOR ALL ENTRIES IN GT_BSEG
   WHERE BUKRS = GT_BSEG-BUKRS AND BELNR = GT_BSEG-BELNR AND GJAHR = GT_BSEG-GJAHR AND BUZEI = 
   GT_BSEG-BUZEI.

LOOP AT GT_BSIS INTO GS_BSIS.
   WRITE:/ GS_BSIS-BUKRS,GS_BSIS-BELNR,GS_BSIS-GJAHR,GS_BSIS-BUZEI.
ENDLOOP.
           
SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】语句介绍代码示例案例代码演示效果演示

​​

代码结果.jpg

效果演示

1. BSEG数据库表数据

SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】语句介绍代码示例案例代码演示效果演示

​​

BSEG1.jpg

SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】语句介绍代码示例案例代码演示效果演示

​​

BSEG2.jpg

2. BSIS数据库表数据

SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】语句介绍代码示例案例代码演示效果演示
SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】语句介绍代码示例案例代码演示效果演示

从上面图片中可以看出,成功的将两个表中相同数据的数据项取出来并且输出了!