안녕 하십니까?
제목 처럼 인터널 테이블에 세로로 담겨져 있는 값으 가로로 넘길수 있는 방법을 알고 싶습니다.
예를 들자면
고객명 | 유통경로 | 제품명 | 매출일자 | 매출금액 |
서울주식회사 | 내수 | 서울우유 | 2008.03.01 | 1000 |
서울주식회사 | 내수 | 남양우유 | 2008.03.01 | 1200 |
서울주식회사 | 내수 | 롯데우유 | 2008.03.01 | 1300 |
서울주식회사 | 내수 | 제일우유 | 2008.03.01 | 1400 |
서울주식회사 | 내수 | 서울우유 | 2008.04.01 | 1100 |
서울주식회사 | 내수 | 남양우유 | 2008.04.01 | 1250 |
서울주식회사 | 내수 | 롯데우유 | 2008.04.01 | 1300 |
서울주식회사 | 내수 | 삼일우유 | 2008.04.01 | 1400 |
위와 같이 it_01 이라는 인터널 테이블이 있씁니다.
위 테이블을 아래와 같이 변경 하고 자 할때 어떤 좋은 방법 없을까요?
고객명 | 유통경로 | 제품명 | 3월매출금액 | 4월매출금액 |
서울주식회사 | 내수 | 서울우유 | 1000 | 1100 |
서울주식회사 | 내수 | 남양우유 | 1200 | 1250 |
서울주식회사 | 내수 | 롯데우유 | 1300 | 1300 |
서울주식회사 | 내수 | 제일우유 | 1400 | |
서울주식회사 | 내수 | 삼일우유 | 1400 |
키는 고객명, 유통경로, 제품 명 입니다.
성실한 답변 부탁 드리겠습니다.
댓글 5
-
mean
2008.10.16 02:32
-
다급
2008.10.16 02:48
FIELD-SYMBOLS를 이용하시면 됩니다.
IT_01이라는 TABLE을 LOOP을 돌리면서,
LOOP AT IT_01.
MOVE-CORRESPONDING IT_01 TO IT_02.
LV_DATE = IT_01-매출일자+4(2).
CONCATENATE 'IT_01' LV_DATE INTO LV_FIELD.
ASSIGN (LV_FIELD) TO <LV_FS1>.
CHECK SY-SUBRC = 0.
CONCATENATE 'IT_02' LV_DATE INTO LV_FIELD2.
ASSIGN (LV_FIELD2) TO <LV_FS2>.
CHECK SY-SUBR-C = 0.
<LV_FS2> = <LV_FS1>.
APPEND IT_02.
ENDLOOP.
요렇게?? ㅎ
-
bd
2008.10.16 06:24
DATA : LT_TEST TYPE XXXXXX OCCURS 0, * 기존 인터널 테이블
LS_TEST LIKE LINE OF LT_TEST.
DATA : LTR_TEST TYPE XXXXX OCCURS 0, * 변경할 인터널 테이블
LSR_TEST LIKE LINE OF LTR_TEST.
FIELD-SYMBOLS <FS> TYPE SY-DATUM.
DATA : L_VALUE(20).
DATA : L_CHECK(2).
LOOP AT LT_TEST INTO LS_TEST.
MOVE-CORRESPONDING LS_TEST TO LSR_TEST.
ASSIGN COMPONENT 'DATE' OF STRUCTURE LS_TEST TO <FS>.
IF <FS>+4(2) = '03'.
MOVE LS_TEST-KRW TO LSR_TEST-03KRW.
ELSE.
MOVE LS_TEST-KRW TO LSR_TEST-04KRW.
ENDIF.
APPEND LSR_TEST TO LTR_TEST.
ENDLOOP.
이런식으로 하면 될듯하내용;;
소스 테클 대환영 합니다. ^^
-
bd
2008.10.16 08:06
내용 정정 합니다. 마지막 라인에 append 가 아니라 collect 가 되어야 결과 table 처럼 나오겠내요 ^^
단 매출 금액에 해당하는 필드가 collect 알맞는 type이 여야 겠지요 ^^
-
슈퍼아밥퍼가되련다
2008.10.16 20:06
12개월 까지 늘어 날수 있습니다.
딱 3월,4월 두개가 fix된건가요? 아님 두달씩 출력하나요. 아님 가변적으로 여러달 늘어날수있는건가요.
it_01을 loop돌리면서 월이 바뀔때, 필드명을 field-symbol을 사용하여 데이터를 넣는것이 어떨까요.