해당 sql에서 mseg의 키값이 (mblnr, gjahr?)이 조건에 없네요.
우선 날짜를 지정해서 구간을 지정하시고, RANGE 변수를 선언하는 것이 좋을 것 같습니다.
첨부화일 참고하세요.
>SELECT a~matnr
> c~werks
> a~ersda
> a~ernam
> a~laeda
> a~aenam
> c~lvorm
> a~mtart
> a~meins
> INTO CORRESPONDING FIELDS OF TABLE gt_matnr
> FROM mara AS a
> JOIN marc AS c ON a~matnr = c~matnr
> WHERE a~lvorm NE 'X'
> AND c~lvorm NE 'X'
> AND a~extwg = 'ESH'.
>
>여기서 생성된 gt_matnr을 가지고...
>
> SELECT budat
> werks
> lgort
> prctr
> bwart
> shkzg
> matnr
> meins
> menge
> lifnr
> INTO CORRESPONDING FIELDS OF TABLE lt_zmmti50
> FROM zmseg
> FOR ALL ENTRIES IN gt_matnr
> WHERE cpudt = i_date
> AND matnr = gt_matnr-matnr
> AND werks = gt_matnr-werks
> AND bwart IN ('101', '102', '201', '202',
> '261', '262', '701', '702', '351').
>
>이런식으로 FOR ALL ENTRIES IN 구문을 이용하였는데 이방법말고 다른 방법없을까요? 속도가 너무 느린거 같습니다..
>
WHRE 절에 IN 구문이 들어가도 에러는 발생하지 않나요?