REPORT ZTRAN25009.
TABLES SFLIGHT.
DATA : BEGIN OF IT_SFLIGHT OCCURS 0.
INCLUDE STRUCTURE SFLIGHT.
DATA : END OF IT_SFLIGHT.
RANGES: R_FLDATE FOR SFLIGHT-FLDATE.
START-OF-SELECTION.
loop at it_sflight.
CLEAR R_FLDATE.
R_FLDATE-SIGN = 'I'.
R_FLDATE-OPTION = 'EQ'.
R_FLDATE-LOW = '20071115'.
APPEND R_FLDATE.
endloop.
clear it_sflight.
SELECT FLDATE INTO CORRESPONDING FIELDS OF it_sflight
FROM SFLIGHT WHERE FLDATE EQ R_FLDATE.
ENDSELECT.
WRITE:/ it_sflight-CONNID,
it_sflight-FLDATE,
it_sflight-PRICE.
end-of-selection.
문제점이 뭘까요..ㅜㅜ
댓글 8
-
e-abap
2007.11.16 00:23
-
BEST!!
2007.11.16 00:29
바꿨는데 그래도 문제가 있는듯- -;;
fldate 에 대한 write 문은 출력이 되는데 나머진 다 0으로 되네요.. ㅠ
-
지의
2007.11.16 00:48
BEST 님 어디서 일을 하고 계신건가요? 교육 기관이서 교육을 받거나 개인적으로 공부를 하는건가요? -
BEST!!
2007.11.16 00:50
직장에서 일을 하고 있는데요..신입사원이라 교육중에 있습니다.. -
e-abap
2007.11.16 00:53
음... abap 공부를 ... 더 하셔야 될거 같은데... 위소스는...조금.... 그렇네요.
저도 처음엔 그랬으니, 열공 하세요~
첫째 loop at it_sflight. 여기서 데이터가 존재하지 않기 때문에 loop 가 수행되지 않습니다.
둘째, 그래서 range 변수에 아무값도 들어가지 않습니다.
추가로 IN 구문에서 RANGE 구문에 아무것도 존재하지 않으면 전부 다 가져오기 때문에 조심해서 사용해야합니다.
셋째, 그래서 sflight 테이블의 모든 데이터를 가져오게 됩니다.
넷째, 값이 안나오는거는 FLDATE 만 SELECT 했는데 나머진 당연히 안나오죠.
....
우선 다음 소스를 한번 실행해보세요~~
TABLES SFLIGHT.
DATA : BEGIN OF IT_SFLIGHT OCCURS 0.
INCLUDE STRUCTURE SFLIGHT.
DATA : END OF IT_SFLIGHT.
RANGES: R_FLDATE FOR SFLIGHT-FLDATE.
START-OF-SELECTION.
CLEAR R_FLDATE.
R_FLDATE-SIGN = 'I'.
R_FLDATE-OPTION = 'BT'.
R_FLDATE-LOW = '20011115'.
R_FLDATE-HIGH = '20071115'.
APPEND R_FLDATE.
clear it_sflight.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_sflight
FROM SFLIGHT WHERE FLDATE in R_FLDATE.
LOOP AT IT_SFLIGHT.
WRITE:/ it_sflight-CONNID,
it_sflight-FLDATE CURRENCY 'USD',
it_sflight-PRICE.
ENDLOOP.
end-of-selection.
-
BEST!!
2007.11.16 00:55
네.. 완전 초짜에요..열심히 할려고 하고있습니당..ㅎㅎ -
지의
2007.11.16 01:15
select fldate 라는 필드만 선언해서 fldate 에 대한 데이터만 조회하고 있네요
물론 loop at 도 문제겠지만 그건 그 이후겠죠.
-
초향이
2007.12.06 21:43
ranges 에 대해 도움을 얻어 가는군요...감사합니다.
FLDATE EQ R_FLDATE
가 잘못됐네요
FLDATE in R_FLDATE 으로 해야 됩니ㅏㄷ.
그리고 range 변수는 밑에도 질문이 있으니 한번 참고해보세요~