(FOR ALL ENTRIES)
SELECT *
INTO CORRESPONDING FIELDS OF TABLE IT_MARA
FROM MARA AS A
INNER JOIN MAKT AS B
ON A~MATNR EQ B~MATNR AND B~SPRAS = 'E'
WHERE A~MTART IN S_MTART
AND A~MATNR IN S_MATNR
AND A~BISMT IN S_BISMT
AND B~MAKTX IN S_MAKTX.
(조인2)
SELECT
A~MTART
A~MATNR
A~BISMT
B~MAKTX
E~WERKS
E~PRCTR
F~PEINH
A~MATKL
A~SPART
A~PRDHA
A~GEWEI
A~VOLEH
A~VOLUM
A~NTGEW
A~EAN11
A~NUMTP
A~BRGEW
INTO CORRESPONDING FIELDS OF TABLE IT_TAB2
FROM MARA AS A INNER JOIN MAKT AS B
ON A~MATNR = B~MATNR AND B~SPRAS = 'E'
INNER JOIN MVKE AS C
ON A~MATNR = C~MATNR
INNER JOIN MARC AS E
ON A~MATNR = E~MATNR
INNER JOIN MBEW AS F
ON A~MATNR = F~MATNR
* FOR ALL ENTRIES IN IT_MARA
WHERE
* A~MATNR = IT_MARA-MATNR
A~MTART IN S_MTART
AND A~MATNR IN S_MATNR
AND A~BISMT IN S_BISMT
AND B~MAKTX IN S_MAKTX
AND E~WERKS IN S_WERKS
AND C~VKORG IN S_VKORG.
결과값1)
위와 320개의 데이터가 나옵니다.
테이블마다 데이터는 (조건을 P-100 과 FERT 를 줄경우)
MARA 1개 MBEW 8개 MARC 8개 MVKE 5개 MAKT 1개 입니다.
그리고 여기서 FOR ALL ENTRIES 를 사용하면...
위 내용에서 8개의 데이터만..나옵니다.
중복된 값이 많이 나오니...이게 맞는지 정확히 알수가 없네요 ㅜ ㅜ
여러개의 테이블을 조인을 할경우..데이터가 정확히 나오는지 확인을 할수 있는 방법이 없을까요?
FOR ALL를 사용하엿는데 정확히 사용한건지..ㅠ.ㅠ 간단히 사용하는 방법은 알겠지만..
필드가 여기저기 테이블에서 불러지고...많아지니....어찌 써야할지를...
이러저리 고민하다고 글을 올립니다.
하루 잘 마무리들 하시구~~ 주말 행복하게 보내세요~~
여러테이블을 조인하여 결과값이 나올때 조인이 정확하게 되었나 확인하는것은 se11에서 조건에 맞게(간단하게 하나의 값만 나오도록
데이터 범위를 축소해서) 데이터를 조회해 보는 방법이 제일 정확할듯 싶습니다.
약간 시간이 걸리 겠지만 그래도 정확한 방법이구요..
위에서 보시면 조인2에서 mara 테이블만 조회를 하게 되어 있습니다..여기서 "AND E~WERKS IN S_WERKS"에 값이
없다면 모든 플랜트에 해당 제품번호(matnr)이 나오므로 중복되어 나올 수도 있습니다.(모든 플랜트에 사용이 되는 제품이라면요)
조인과 where 절의 조건에 따라 나오는 데이터가 달라지므로 se11에서 데이터를 조인에 맞게 확인해 보셔야 할겁니다.
즐밥하세요..