首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于 FOR ALL ENTRIES IN 去重

做运维的时候,发现一个问题。

只有特定情况下出现了错误。

debug的时候发现是一条SQL语句取数没取全。

原因就是使用了 FOR ALL ENTRIES IN。

直接看demo:

SPFLI表数据

代码

首先在 1处打断点

只取出来4条

自动去重了

再到断点2

9条,数据是全的

所以以后使用 FOR ALL ENTRIES IN  的时候,select的字段要斟酌好,最好把所有主键都取出来,防止自动去重的时候丢数据

demo代码

*&---------------------------------------------------------------------*

*& Report ZLM_TEST02

*&---------------------------------------------------------------------*

*&

*&---------------------------------------------------------------------*

REPORT zlm_test02.

DATA:lt_spfli1 TYPE TABLE OF spfli.

DATA:lt_spfli2 TYPE TABLE OF spfli.

SELECT * FROM spfli INTO TABLE lt_spfli1

WHERE cityfrom = 'FRANKFURT'.

CHECK sy-subrc = 0.

SELECT

cityfrom

airpfrom

cityto

FROM spfli

INTO CORRESPONDING FIELDS OF TABLE lt_spfli2

FOR ALL ENTRIES IN lt_spfli1

WHERE cityfrom = lt_spfli1-cityfrom

AND airpfrom  = lt_spfli1-airpfrom.

IF  1 = 2.

ENDIF.

SELECT

cityfrom

airpfrom

cityto

FROM spfli

INTO CORRESPONDING FIELDS OF TABLE lt_spfli2

WHERE cityfrom = 'FRANKFURT'

AND airpfrom  = 'FRA' .

IF  1 = 2.

ENDIF.

原创不易,请帮忙点击右下角 在看,谢谢

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200602A02ZU800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券