현재 아래와 같이 되어 있습니다.
A | B |
1 | 903580 |
1 | 904340 |
2 | 903590 |
2 | 900189 |
아래와 같이 바꾸고 싶습니다.
A | B |
903580 | 903590 |
904340 | 900189 |
이것 저것 해봤는데 자꾸 가공을 하는데 아래와 같이 밖에 안되요 ㅜㅜ 도움 요청 합니다.
A | B |
903580 | |
904340 | |
903590 | |
댓글 3
-
띵호아빠
2008.12.19 23:49
-
아밥퍼
2008.12.20 00:28
A 숫자별 데이터를 열 단위로 나오게 하는 것 같은데...
의도가 정확히 뭔지는 모르겠지만 단순히 위의 결과를
나오게 할려면 아래와 같이 하면됩니다.
좀 더 동적으로 할려면 다른 방법으로 해야겠지만 ...
A 숫자별로 인터널테이블을 따로 만들어서 데이터를 추가하고
1 과 2의 인터널 테이블 자료를 결과 테이블로 병합합니다.
위의 띵호아빠 설명대로 1, 2의 갯수가 동일해야 합니다.
DATA: BEGIN OF itab OCCURS 0,
a(6),
b(6),
END OF itab.
DATA: BEGIN OF itab2 OCCURS 0,
a(6),
END OF itab2.
DATA: BEGIN OF itab3 OCCURS 0,
a(6),
END OF itab3.
DATA: BEGIN OF itab4 OCCURS 0,
a(6),
b(6),
END OF itab4.
itab-a = 1.
itab-b = '903580'.
APPEND itab.
itab-a = 1.
itab-b = '904340'.
APPEND itab.
itab-a = 2.
itab-b = '903590'.
APPEND itab.
itab-a = 2.
itab-b = '900189'.
APPEND itab.
loop at itab .
if itab-a eq 1.
itab2-a = itab-b.
append itab2.
else.
itab3-a = itab-b.
append itab3.
endif.
endloop.
loop at itab2.
itab4-a = itab2-a.
read table itab3 index sy-tabix.
itab4-b = itab3-a.
append itab4.
endloop.
itab4 에 원하는 결과가 들어갑니다.
도움이 되시길...
-
초보bsp/abap
2008.12.20 01:11
두분 정보에 감사드립니다. 아밥퍼님은 손수 소스까지 적어주시고 감사합니다 그대로 copy해서 했습니다 ㅎㅎ
1. 인터널테이블 A 와 B 그리고 보여줄 테이블 C(초기테비릉과 동일하게) 를 만듭니다.
원 인터널테이블을 Loop 을 돌면서 1일경우 A 테이블에..2 일 경우 B 테이블에..각가 append 한후..
2. A 와 B 테이블을 Descending 으로 Sort..후
loop at A. 에서 tabix 값을 가지고 B 테이블을 읽고 A 와 B 테이블 내용을 C 테이블에 넣으면 정리가 될듯하네요..
단, 전제는 1 과 2 의 갯수가 동일하여야..A 와 B 테이블에도 갯수가 동일하게 들어가겠죠..
(원테이블의 B 칼럼에 이빨빠진 경우가 있을 때엔 결과 모양이 찌그러집니다..)