메뉴 건너뛰기

SAP 한국 커뮤니티

FOR ALL ENTRIES IN 구문 사용시 select 필드 선택시 주의사항.

나침반친구 2007.03.13 11:28 조회 수 : 16995 추천:30

 


LOOP문 안에 LOOP문 사용하는거 대신에 FOR ALL ENTRIES IN 구문을 자주 이용하는데요.


 


특정 데이타를 Select를 못해오는 경우가 발생하여 원인을 찾아보니,


FOR ALL ENTRIES IN 구문을 사용해서 테이블에서 데이타를 SELECT 해올 경우에


SELECT 하는 필드들이 전부 동일한 데이타들이 존재할 경우 한 건만 가져오더라구요.


그래서 SELECT할 때 테이블의 Key값이 되는 필드들이 필요하지 않더라도


SELECT를 해와야지 데이타들을 다 가져올 수 있더라구요.


 


말로만 설명하면 이해가 안가실지 모르니


실제 코딩내용으로. ^^


1번으로 데이타를 가져올 경우에 LIPS 테이블에 VGBEL VGPOS 두값이 모두 같은 데이타가 3건 존재한다고 경우,


SELECT해와서 GT_LIPS 인터널 테이블에 들어가는 데이타들이 한건 이더라구요.


동일한 데이타들이 존재할 경우 데이타를 다 못가져올 수가 있어요.


2번에서 LIPS 테이블에서 키 필드인 VBELN POSNR 두 필드를 SELECT를 같이 해주면 3건의 데이타 모두 가져올 수 있네요.


 


1). SELECT VGBEL VGPOS LGMNG
      INTO TABLE GT_LIPS
      FROM LIPS
      FOR ALL ENTRIES IN ITAB2
    WHERE VGBEL = ITAB2-VBELN.


 


2). SELECT VBELN POSNR VGBEL VGPOS LGMNG
      INTO TABLE GT_LIPS
      FROM LIPS
      FOR ALL ENTRIES IN ITAB2
    WHERE VGBEL = ITAB2-VBELN.