인터널 테이블 두개를 선언해서 데이터를 생성하였습니다.
선언된 테이블을 각 각 a, b라고 했을 때,
a와 b를 비교하여 같은 값이 있으면 a의 값을 삭제하고 싶습니다.
loop안에 loop를 넣었더니 데이터가 너무 많아 시간이 엄청 오래 걸립니다.
속도도 향상시키고 쉽게 비교할 수 있는 방법이 없을까요?
댓글 2
-
버미!
2010.09.29 17:33
-
맑은하늘
2010.09.29 21:52
먼저 binary 탐색을 위하여 a, b 테이블을 검색조건에 해당하는 키로 index table 로 선언하시고
a 나 b 둘중에 하나는 loop 을 돌리면서 다른 테이블을 read 하시면서 삭제하시면 되겠네요.
loop at b.
read table a transporting no fields
with key key1 = b-key1
key2 = b-key2
...
.
if sy-subrc is initial.
delete a index sy-tabix.
endif.
endloop.
대략 이렇게 하면 될 것 같네요.
A Loop 안에 B Read를 하여 있으면 A 데이타 삭제 후 Continue
하시면 되겠는데요..