公众号:SAP Technical
本文作者:matinal
 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

ABAP开发中,使用for all entries in语句将不能使用join的聚集表(例如BSEG)或者需要使用select的内表与内表串联。
以BSEG为例:
select belnr hkont
from bsis
into corresponding fields of table itab1
where ....
if not itab1[] is initial.
select kunnr lifnr belnr
from bseg
into corresponding fields of table itab2
for all entries in itab1
where belnr = itab1-belnr and hkont = itab1-hkont and ....
endif.
由于BESG不能和BSIS做内联,所以先将BSIS要获取的内容放到内表itab1中,然后用 for all entries in 来串联。
注意:
1、必须要判断for all entries in后面的内表是否为空,如果为空,where条件中与内表中字段进行比较的结果全部为真,会导致取出非常多的数据,影响系统性能。
2、使用for all entries in,对于最后得出的结果集系统会自动删除重复行(即使用了distinct)。如果要保留重复行记录,要在SELECT语句中添加足够的key(有必要时,增加全部key),以保证结果集中所需重复项目不会被删除。
3、对于内表中作为条件替换用项目,不能使用LIKE,BETWEEN,IN比较操作符。这些比较操作符都是不确定比较操作符(将选择条件设定在一个范围内),而 for all entries in 语句的作用相当于将选择条件块全部并列开来,用OR连接,如果每个OR分支中又是不确定的范围,那么系统性能将大大降低。
4、使用该语句时,ORDER BY语句和HAVING语句将不能使用。
5、使用该语句时,除COUNT( * )以外的所有合计函数(MAX,MIN,AVG,SUM)都不能使用。
6、使用 for all entries in 虽然在某些方面很方便的,但很耗内存。
7、itab-field作为占位符被替换,所以定义内表itab时不要使用with header line,以免造成混淆。

【ABAP系列】SAP ABAP中使用for all entries in小结的更多相关文章

  1. 【ABAP系列】ABAP CL_ABAP_CONV_IN_CE

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]ABAP CL_ABAP_CON ...

  2. 【MM系列】SAP ABAP 编辑字段出现:对象编辑中的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 编辑字段出现: ...

  3. 【HANA系列】SAP ECLIPSE中创建ABAP项目失败原因解析

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP ECLIPSE中创建AB ...

  4. 【HANA系列】SAP ECLIPSE中创建ABAP项目的步骤

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP ECLIPSE中创建AB ...

  5. 【ABAP系列】SAP ABAP 开发中的SMARTFORMS 参数

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 开发中的SMA ...

  6. 【ABAP系列】SAP ABAP中ALV使用HTML的例子

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP中ALV使用HT ...

  7. 【ABAP系列】SAP MB5B中FI凭证摘要是激活的/结果可能不正确 的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP MB5B中FI凭证摘要是 ...

  8. 【ABAP系列】SAP ABAP ALV中设置CHECKBOX同时选中事件

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中设置CHE ...

  9. 【ABAP系列】SAP ABAP ALV中的TOP_OF_PAGE添加任意图标

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中的TOP_ ...

随机推荐

  1. java中数组的数组问题

    int[] arr = new int[10]; int[] arr2 = arr; arr[1] = 10; arr2[1] = 20; System.out.println(arr[1]); 上面 ...

  2. listalias - 列出用户和系统别名

    总揽 listalias [ -s | -u ] [ 正则表达式] 描述 Listalias 按用户及系统别名每个输出一行.每行具有下列格式: <别名> <地址> (<注 ...

  3. linux系统特殊权限位 suid、sgid、sticky

    linux系统特殊权限位 suid.sgid.stickysuid 使任意用户获得用文件属主相同的权限,sgid使用户获得与文件属组相同的权限(通过sgid获得的权限等同于同一用户组的权限) 表示方法 ...

  4. 长沙理工大学第十二届ACM大赛L 选择困难症 (剪枝暴搜)

    链接:https://ac.nowcoder.com/acm/contest/1/L 来源:牛客网 选择困难症 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 131072K,其他语言 ...

  5. Python四种实现单例模式的方法

    在这之前,先了解super()和__new__()方法 super()方法: 返回一个父类或兄弟类类型的代理对象,让你能够调用一些从继承过来的方法. 它有两个典型作用: a. 在单继承的类层次结构中, ...

  6. 使用logrotate轮询nginx和apache日志

    使用logrotate轮询nginx和apache日志     文章目录 [隐藏] 配置nginx 配置apache 使用logrotate轮询日志很方便,配置也很简单. 配置nginx 1.建立/e ...

  7. SpringBoot整合表单验证注解@Validated,以及分组验证

    首先引入jar包 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate ...

  8. JSON提取器

    如果返回的数据是JSON格式的,我们可以用JSON提取器来提取需要的字段,这样更简单一点 Variable names:保存的变量名,后面使用${Variable names}引用 JSON Path ...

  9. POJ 2229 sumset ( 完全背包 || 规律递推DP )

    题意 : 给出一个数 n ,问如果使用 2 的幂的和来组成这个数 n 有多少种不同的方案? 分析 :  完全背包解法 将问题抽象==>有重量分别为 2^0.2^1.2^2…2^k 的物品且每种物 ...

  10. layer.confirm

    layer.confirm('确定不选择花车?', { title: false, btn: ['确定','取消'] //按钮 }, function(ind){ layer.close(ind); ...