안녕하세요.
분명 방법이 있을 것 같은데, 해보니 안되네요..
Internal Table이 2개 있습니다.
Atab과 Btab 2개라 가정합니다.
Atab에 데이타들이 있습니다.
Btab에 데이타들이 있습니다.
Atab의 데이타중 Btab에 있는 데이타만 남기고 모두 삭제하고 싶습니다.
간단히..Atab에 1,2,3,4,5 데이타가 있고, Btab에 2,4,5가 있을 경우
Atab에 1,3은 삭제하고 싶습니다.
Loop문을 이용해야 하는지요?
답변 부탁드립니다.
고맙습니다.
댓글 6
-
happy~
2007.09.11 01:07
-
SSong
2007.09.11 02:04
loop at btab.
delete Atab where 키 = btab-키.
endloop.
저도 루프문 밖에 생각이 안나는데요 .
다른 고수 분들 답변이 기대 되네요 화이팅
-
김지성
2007.09.11 02:13
진정 루프 문 밖에 없나..휴..
happy님 SSong님 리플 고맙습니다.
performance 무시하고 걍 해야겠네요..휴..
-
happy~
2007.09.11 02:42
하하 쏭님~ 쏘스 짧다~
아 저런 방법이 있는데 저는 괜히 길게 했네요~ㅎㅎㅎㅎㅎ
음.. 속도를 더 빠르게 하려면
loop at btab.
delete Atab where 키 <> btab-키.
endloop.
이 루프전에 btab-키 만 다른 테이블에 넣어서
duplicate 문 써서 엔트리를 줄여준 담에 해도 빠르겠네요..ㅎㅎ
아닌가?ㅎㅎ ㅈㅅㅈㅅ 내공 더 쌓겠음당~ㅎ
-
SSong
2007.09.11 17:48
ㅋㅋ happy님 감사합니다 .
happy 님의 말씀데로 엔트리를 줄여준 다음 하는 방법을 생각해 보았는데
itab를 만들어서 btab 키 값을 group by 로 묶은 다음
loop at itab.
delete Atab where 키 <> itab-키.
endloop
돌리는 방법도 좋을것 같네요 ~~
-
happy~
2007.09.11 19:42
아하하하~ 네~ ㄳㄳ
loop at Atab.
idx = sy-tabix.
read table Btab with key a = Atab-a.
if sy-subrc <> 0.
delete Atab index idx.
endif.
endloop.
푸ㅋㅋㅋ 요렇게는 어떤가요?
전 루프문 밖에 딱히 생각나는게 없네요.;;