
그림파일처럼 각 월별로 빨간색으로 표시한 row만 뽑고 싶어요.
그러다보니 빨간색표시 첫번째 날짜와 노란색 표시 날짜를 비교해야되는데...
방법이 떠오르지 않아서....애먹고 있네요. ㅠㅠㅠ
빨간표시 첫번째 날짜를 spmon
노란표시 날짜를 datuv라고 할 때
ITAB_SPMON <= ITAB_DATUV 하면 1월은 제대로 나오겠지만..
2월부터는 계속 두개가 나올 수 밖에 없는 상황이 되니...
해당 날짜들은...
예를들어
1월은 (20110101, 20110701, 20110901 중 20110101만 가져와야되는거거든요.
2월은 (20110101, 20110701, 20110901 중 20110701만 가져와야되는거거든요.
7월은 (20110101, 20110701, 20110901 중 20110701만 가져와야되는거거든요.
어떻게 하면 좋을까요?
댓글 7
-
버미!
2010.11.03 02:51
-
버미!
2010.11.03 02:55
쩝..
data : lv_tabix type sy-tabix.
Loop at itab.
clear : lv_tabix.
lv_tabix = sy-tabix.
if lt_itab-spmon = lt_itab-datuv(6).
delete itab index lv_tabix.
clear : itab.
continue.
endif.
endloop.
-
맨날초보
2010.11.03 03:10
버미님 댓글 감사합니다. 그러나...같은월을 지우려는게 아니거든요. ㅜ.ㅜ
2월은 20110701 로우값을 가져와야되서 그외 20110101, 20110901 은 삭제 해 줘야되요.
-
버미!
2010.11.03 03:40
케이스가 다양하네요..
그럼 Loop 안에 case 문을 추가하여 각각의 case 별로 큰값을 가져오는 지, 같은 값을 가져오는 지, 적은 값을 가져오는지
해서 itab에 닫는 로직이 필요하겠습니다.
근데 기준이 뭘까요? 1월은 적은값? 큰값? 같은값 뭔가 기준이 있을텐데..
그 기준을 알려주시면 로직이 바뀌게 될겁니다.
-
테라스
2010.11.03 03:41
데이터를 월과 효력시작일 필드로 정렬을 한 다음
DATA: TEMP_SPMON LIKE ITAB1-SPMON,
CHECK_DATA TYPE C.
LOOP AT ITAB.
IF TEMP_SPMON <> ITAB-SPMON.
CLEAR: CHECK_DATA.
TEMP_SPMON = ITAB-SPMON.
ENDIF.
IF ITAB-월 <= ITAB-DATUV.
CHECK_DATA = 'X'.
CONTINUE.
ENDIF.
IF CHECK_DATA = 'X'.
DELETE ITAB.
ENDIF.
ENDLOOP.
-
Risky
2010.11.03 03:50
저도 테라스님과 비슷한것 같네요.
저는 다만 IF TEMP_SPMON <> ITAB-SPMON. 대신에
At New ITAB-SPMON 생각하고 있었거든요.
-
세인
2010.11.03 08:09
risky님 말 받아서...
SORT ITAB BY SPMON DATUV.
DATA : CHECK(1).
LOOP AT ITAB.
AT NEW SPMON.
CLEAR CHECK.
ENDAT.
IF ITAB-SPMON <= ITAB-DATUV+0(6).
IF CHECK IS INITIAL.
APPEND ITAB TO ITAB2 .
CHECK = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
ITAB[] = ITAB2[].
ALV 데이타가 ITAB이라면
Data : lt_itab like table of itab with header line.
clear : lt_itab.
lt_itab[] = itab[].
clear : itab, itab[].
Loop at lt_itab.
if lt_itab-spmon = lt_itab-datuv(6).
move-corresponding lt_itab to itab.
append itab.
continue.
endif.
endloop.
하시면 itab에는 해당 월에 대한 내용만 들어가게 됩니다.
뭐 Delete로 해도 되지만...걍..