안녕하세요...
초보의 질문입니다.
A1
자재 | 판가 | 판가단위 |
A | 1000 | KRW |
A | 1 | USD |
B1
자재 | 판가 | 판가단위 |
A | 1000 | KRW |
결과 (환율 1000원)
C3
자재 | 판가 | 판가단위 |
A | 2000 | KRW |
위의 두 테이블이 있습니다.
A1 과 B1을 비교하여, 판가 단위 같으면 C3 라는 테이블에 넣고,
같지 않으면 환율을 가져와서 COLLECT를 하려고 합니다.
루프를 돌리려고 하니, 조회건수가 만건이 넘어서 너무 시간이 걸릴거 같고,
여기서 검색하다 보니,
READ 를 써서, 조회시간을 줄일수 있는 방법이 있단걸 알았습니다.
근데 아무리 해보아도 되질 않네요....
부탁 드리겠습니다.
새해 복 많이 받으십시요.
아래와 같이 하시면 될듯 합니다.
data : lv_idx type sy-tabix,
lv_sflag type c.
sort A1 by 자재.
loop at B1.
clear : lv_idx, lv_slag.
read table A1 with key 자재 = B1-자재 binary search.
if sy-subrc eq 0.
lv_index = sy-tabix.
loop at A1 from lv_index.
if B1-자재 NE A1-자재.
exit.
endif.
if B1-판가 eq A1-판가.
lv_sflag = 'X'.
exit.
endif.
endloop.
endif.
if lv_sflag eq 'X'.
"찾은겁니다.
else.
"못찾은거예요.
endif.
endloop.