안녕하세요
인터널 테이블 구조가 아래와 같이 되어 있습니다.
BLDAT, WERKS, KOSTL
타입은 각각 아래와 같구요
DAT, CHAR , CHAR
3개의 기준으로 SORT했습니다.
LOOP 돌면서 이 3개의 필드가 모두 같은 DATA만 모아서 PERFORM을 실행해야
합니다.
일일이 IF로 비교하면서 APPEND하면 될것도 같은데
쉽게 하는방법이 있을것도 같아서 문의드립니다.
댓글 7
-
벤또
2007.10.26 23:38
-
e-abap
2007.10.27 00:01
같은 데이터들기리 그룹핑 한다는 말인가요? 그럼 delete~는 아니네요.
언뜻 생각 나는 방법은 3개의 필드를 하나로 묶는 필드를 하나 선언해서,
concatenat '필드1' 필드2' '필드3' into '신규필드' 로 붙이구요.
loop at ~.
AT NEW 신규필드.
~
endat.
endloop.
이런식으로 하면 되지 않을까요?
-
여영주
2007.10.29 12:08
제가 이해하기는 세필드에 모두 같은 값이 있는 아이들만 모으고 싶다는 말 같은데욤... ㅋ
그냥 if 쓰세요.. 쉬운게 좋은 거지. ㅋㅋㅋㅋ
-
w
2007.10.29 18:26
LOOP AT ITAB WHERE 조건.
PERFORM ...
ENDLOOP.
이러면 ITAB를 다 돌필요도 없으니 퍼포먼스도 그리 문제 없을것 같다는...
-
윤군친구(bsp개발자)
2007.10.30 03:08
where 조건 이 조건<< 이걸 만족시킬수 없다는 생각이 드네요.
그냥 loop 돌면서 if문써서 3개가같으면 작업하시고 틀리면 exit 하시는게.. 좋을듯싶네요--;;;;
이상하수글올립니다.
-
이동수
2007.10.30 19:35
"LOOP 돌면서 이 3개의 필드가 모두 같은 DATA만 모아서 PERFORM을 실행해야
합니다."
라고 질문내용에 있는데요- 모두 같은 data 라는게 각각의 필드별로 비교하는 기준정보가 따로
있어서 그거와 모두 일치하는걸 찾는다는 이야기신 거죠?
DELETE ADJACENT DUPLICATES 구문을 사용해서 어떻게 모을수 있는지
좀 설명좀 부탁드립니다. 이해가 잘 안가는데요 이건 중복된것을 삭제하는건데