💬个人网站:【芒果个人日志】 💬原文地址: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.
代码结果.jpg
效果演示
1. BSEG数据库表数据
BSEG1.jpg
BSEG2.jpg
2. BSIS数据库表数据
从上面图片中可以看出,成功的将两个表中相同数据的数据项取出来并且输出了!