SELECT SUM( a~kalab )
INTO (tmp_kalab)
FROM mska AS a JOIN vbak AS b ON a~vbeln = b~vbeln
INNER JOIN vbep AS c
ON a~vbeln = c~vbeln AND
a~posnr = c~posnr AND
c~etenr = '1'
WHERE a~vbeln = tmp_vbeln
AND a~posnr = tmp_posnr
~
AND b~vkorg = gt_list-vkorg.
gv_sum3 = gv_sum3 + tmp_kalab .
ENDSELECT. <=== ?
아밥 초보라 문의드립니다.
SELECT에서 ENDSELECT.를 붙히고 안붙히고의 차이에 대해 알고 싶습니다.
답변주시면 감사드리겠습니다.
댓글 2
-
윤군친구(bsp개발자)
2007.12.13 00:10
-
초봡
2007.12.13 03:18
SELECT ~ ENDSELECT의 경우는 쿼리에 해당하는 레코드를 한 건씩 읽어서
SELECT ~ ENDSELECT 안의 내용을 수행합니다.
즉.. 읽어오는 건 수만큼 DB에접근하는 횟수가 많아지기때문에 비효율적입니다.
SELECT ..... INTO TABLE... 형식을 ARRAY FETCH라고 하는데 이 경우는 DB에서 한꺼번에 해당하는 레코드를 읽어서 인터널 테이블에 담기때문에 레코드가 많을 수록 SELECT ~ ENDSELECT보다 효율이 좋아집니다.
음 또 얕은 지식으로 답변드립니다.
endselct의 경우는 loop ~ selct single (append) ~ endloop. 의 개념으로 보시면됩니다.
즉 조회조건에 대해 한건식 어팬드로 계속 싸이는 거라고 생각하시면 됩니다.
그래서 거의 많은 분들이 비추라고.. 왼만하면사용하지말라고들 말씀하시는거구요..^^;;
더 정확한 답변 기다리고 있겠습니다.^^