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的内表与内表串联。

代码示例

代码语言:javascript
复制
SELECT...FOR ALL ENTRIES IN <itab> WHERE <condition>

案例代码演示

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

代码语言:javascript
复制
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.

​​

代码结果.jpg


效果演示

1. BSEG数据库表数据

​​

BSEG1.jpg

​​

BSEG2.jpg


2. BSIS数据库表数据


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