아래소스와 같이 GROUP BY 를 써서 SUM을 사용하고 싶거든요
그런데 FOR ALL ENTRIES 구문에서는 SUM을 사용할 수 없다고 에러가 발생했습니다.
쉽게 처리하려면, LOOP 돌때 마다 SELECT ~SUM~GROUP BY를 써서 처리하면 될 거 같기도한데,
이럴 경우에 매번 LOOP 돌때마다 DB에 접근해야되서 데이터양이 많을 경우에 처리속도가 많이 늦어질거 같은데,
LOOP 안에서 SUM을 처리하는 방법말고, 다른 좋은 방법 없을까요?
경험많은 개발 컨설분들의 조언 부탁드립니다. ^^;
SELECT BANFN BNFPO FLIEF AS LIFNR MATNR MENGE MEINS WERKS LGORT
LFDAT FRGKZ
INTO CORRESPONDING FIELDS OF TABLE GT_DATA
FROM EBAN
WHERE EBELN IN S_BANFN
AND MATNR IN S_MATNR
AND MATKL IN S_MATKL
AND EKGRP IN S_EKGRP
AND WERKS IN S_WERKS
AND BSART IN S_BSART
AND PSTYP IN S_PSTYP
AND KNTTP IN S_KNTTP
AND LFDAT IN S_LFDAT
AND FRGKZ EQ P_FRGKZ
AND LOEKZ NE 'X'.
** 부분 생략**
DATA : GT_MARD LIKE TABLE OF MARD WITH HEADER LINE.
*.. 평가된 사용가능 재고
SELECT MATNR WERKS SUM( LABST )
INTO CORRESPONDING FIELDS OF TABLE GT_MARD
FROM MARD FOR ALL ENTRIES IN GT_DATA <-- 에러발생
WHERE MATNR = GT_DATA-MATNR
AND WERKS = GT_DATA-WERKS
GROUP BY MATNR WERKS.
LOOP AT GT_DATA.
READ TABLE GT_MARD WITH KEY MATNR = GT_DATA-MATNR
WERKS = GT_DATA-WERKS.
IF SY-SUBRC = 0.
GT_DATA-LABST = GT_MARD-LABST.
ENDIF.
ENDLOOP.
for all entries in 은 sum 및 group by 가 지원되지 않는 걸로 알고 있는데요.