Ⅰ. ERP/1. ABAP
[SAP ABAP] select single 지양! 대신에 이렇게
초록활명수
2022. 9. 27. 13:53
728x90
SELECT SINGLE 지양한다고 한다.
여태까지 많이 썼는데 말이지 ㅎㅎ..
SELECT SINGLE은 계속 DB에 접속하기 때문에 많은 양을 추출해올때는 부하가 걸릴 수 있다.
SELECT SINGLE
lsbew AS zlsbew
lhbew AS zlhbew
lkorr AS zlkorr
FROM t030h
INTO CORRESPONDING FIELDS OF gs_data_2
WHERE hkont = gs_data-zhkont.
구조체 형식으로 single 사용해서 가져오지말고,
Internal Table을 만들어서 담아가지고 활용해라.
LOOP AT gt_data INTO gs_data.
CLEAR ls_hkont.
MOVE-CORRESPONDING gs_data TO ls_hkont.
APPEND ls_hkont TO lt_hkont.
ENDLOOP.
SORT lt_hkont.
DELETE ADJACENT DUPLICATES FROM lt_hkont COMPARING ALL FIELDS. "중복된 행 지우기"
IF lt_hkont IS NOT INITIAL.
SELECT hkont AS zhkont
lsbew AS zlsbew
lhbew AS zlhbew
lkorr AS zlkorr
FROM t030h
INTO CORRESPONDING FIELDS OF TABLE lt_data
FOR ALL ENTRIES IN lt_hkont
WHERE hkont = lt_hkont-zhkont.
ENDIF.
READ TABLE lt_data INTO gs_data_2 WITH KEY zhkont = gs_data-zhkont.
728x90