itab에 A, B, C 3개의 필드가 있을때 A와B가 같은 라인이 2개이상 존재할때 삭제하는 방법이 궁금합니다
예를들어서
itab의 필드가 '물품번호', '품명', '금액', '부호' 라고 할때
물품번호 | 품명 | 금액 | 부호
a00 | A | 100 |
b00 | B | 200 |
b00 | B | 200 | -
c00 | C | 300 | -
c00 | C | 100 |
c00 | C | 200 |
d00 | D | 400 |
위와같은 엔트리가 있을시
2번3번라인, 4번56번번라인처럼 물품번호,품명의 값이 같은 라인인 2개이상있을경우,
삭제하는 방법이 궁금합니다
댓글 5
-
숟가락맨
2010.03.17 01:40
-
정호아빠
2010.03.17 02:16
물품번호,품명의 값이 같은 라인인 2개이상있을경우 삭제하는 것이 아니라
번호+품명별 금액이 0인 것을 삭제하고자 하는 것이 아닌가요?
위의 경우만 보면 부호가 '-'인 것은 *-1을 하여 COLLECT 하는 것이 가장 좋을 듯 하네요.
EX) itemp like itab occurs 0 with headline.
loop at itab into itemp.
if itemp-부호 eq '-'.
itemp-금액 = itemp-금액 * -1.
clear itemp-부호.
endif.
collect itemp. clear itemp.
endloop.
delete itemp where 금액 = 0.
COLLECT은 F1 뒤져보는 센쑤는..초보일지라도
-
남군
2010.03.17 09:40
우선 a와 b에 대해 같은 값을 지우고자 한다고 했으니
sort itab by a b. 가 선행되어야 할테구요..
delete adjacent duplicates from itab comparing a b . 하시면 될것 같네요 ^^
-
bizarre
2010.03.19 22:11
해결되었네여~ 방법은 조금 다르지만 많은 답변 감사드립니다 ^^
-
촌놈악마
2010.06.05 18:42
오 역시 감사합니다.잘 활용하겠습니다.
소트후에 delete << 이거 f1누르면 중복 제거 옵션 있을거에요...공부도 할겸 검색한번 해보세요....^^