SAP ABAP——OPEN SQL(二)【FOR ALL ENTRIES IN 】

举报
Thunder Wang 发表于 2023/01/31 21:33:46 2023/01/31
【摘要】 本文主要介绍SAP ABAP中OPEN SQL的FOR ALL ENTRIES IN语句

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


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


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


语句介绍

使用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.


效果演示

1. BSEG数据库表数据

2. BSIS数据库表数据


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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。