메뉴 건너뛰기

SAP 한국 커뮤니티

FOR ALL ENTRIES IN 질문드립니다!

아좀더 2019.04.19 17:00 조회 수 : 17107

안녕하세요 개발중에 다른분이 개발한 내용인데 이해되지 않는 부분이 있어서 질문드립니다.

 

제가 아는 범위에서 FOR ALL ENTRIES IN <ITAB>의 경우 해당 인터널테이블의 키값으로 중복된 값은 무시하고 조회되는 것으로 알고 있습니다.

 

그런데 굳이 중복을 제거하고 돌리는 소스를 보았습니다.(노랑색으로 표시!)

---------------------------------------------------------------------------------------

  DATA lt_zmmt2270 LIKE TABLE OF gt_zmmt2270 WITH HEADER LINE,
         lv_zmonf    LIKE zmmt0011-zmonf,
         lv_zmont    LIKE zmmt0011-zmont.

  FIELD-SYMBOLS <lt_0011> LIKE zmmt0011.

  _clt gt_zmmt0011gt_zmmt0011_a.

  lt_zmmt2270[] gt_zmmt2270[].
  SORT lt_zmmt2270 BY werks zlifas matnr.
  DELETE ADJACENT DUPLICATES FROM lt_zmmt2270 COMPARING werks zlifas matnr.

  IF lt_zmmt2270[] IS NOT INITIAL.
    SELECT *
      INTO CORRESPONDING FIELDS OF TABLE gt_zmmt0011
      FROM zmmt0011
       FOR ALL ENTRIES IN lt_zmmt2270
     WHERE werks  EQ lt_zmmt2270-werks
       AND zlifas EQ lt_zmmt2270-zlifas
       AND matnr  EQ lt_zmmt2270-matnr
       AND zmonf  LE sy-datum+0(6)
       AND zmont  GE sy-datum+0(6).

 

---------------------------------------------------------------------------------------

 

제 생각엔 굳이 DELETE ADJACENT DUPLICATES 를 사용하지 않아도 WHERE절에 키값으로 사용되는 필드 중복을

UNIQUE하게 가져갈 것으로 생각되는데 이유가 있을까요??

 

테스트해보았을때 데이터 건수는 동일하게 조회됩니다!!

 

도움 요청드립니다!