FOR ALL ENTRIES IN的使用

编程入门 行业动态 更新时间:2024-10-23 04:42:49

FOR ALL <a href=https://www.elefans.com/category/jswz/34/1755229.html style=ENTRIES IN的使用"/>

FOR ALL ENTRIES IN的使用

1. 作用

以内表数据作为查询条件,以方便对查询数据的进一步筛选,选出符合已存在内表中所有满足条件的数据值。

2. 代码示例

IF lt_crd_mseg[] IS NOT INITIAL.SELECT z~*,d~zoutpo AS ebeln1, d~ebelp  AS ebelp1  INTO TABLE @lt_zmmdg011aFROM zmmdg001d AS dINNER JOIN zmmdg011a AS z ON z~zinbpo = d~zinbpo AND z~ibelp = d~ibelpFOR ALL ENTRIES IN @lt_crd_msegWHERE d~zoutpo = @lt_crd_mseg-ebelnAND d~ebelp = @lt_crd_mseg-ebelpAND z~zinbdn = @lv_vbeln.ENDIF.

代码描述: 连接表zmmdg001d、zmmdg011a,筛选出表zmmdg011a的zinbdn = @lv_vbeln以及表zmmdg001d中zoutpo、ebelp等于内表lt_crd_mseg中的ebeln、ebelp的数据。

3. 注意事项

(1)使用前必须要判断For all entries in后面的内表是否为空(如果为空的话,那么在where条件中的与内表中字段进行比较的结果全部为真,也就是全部满足条件,这会导致取出非常多的数据,极大地影响系统的性能);
(2) 使用时尽可能多包含所有KEY(它自动使用了distinct,会自动的删除重复的行);
(3)对数据量大的表操作会影响性能,查询条件必须用等于(使用了FOR ALL ENTRIES后,相当于把表里的条件字段的所有值用OR 连起来,一次对DB操作);
(4)使用前最好对内表排序+删除重复项;
(5)内表不要带有表头行(示例代码中@lt_crd_mseg-ebeln、@lt_crd_mseg-ebelp作为占位符被替换);
(6)聚合行为将不能使用(count\min...\group by\having..);

更多推荐

FOR ALL ENTRIES IN的使用

本文发布于:2024-02-05 11:21:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1745058.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ENTRIES

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!