Select查询数据放一个内表,然后在下一条select语句用where语句in 该内表的方法如下:
第一个内表须定义range类型:
ranges: it_matnr for ekpo-matnr.
然后查询出来的数据要用low
并且需要定义sign和option
并select语句后要用endselect结束。
SELECT
objek AS matnr INTO it_matnr-low FROM ausp WHERE
atinn = '0000000009' AND atzhl = '1' AND mafid = 'O' AND klart = '001' AND
atwrt IN s_atwrt."查询制造商对应的所有物料,然后根据物料来查询PO。
it_matnr-sign = 'I'.
it_matnr-option = 'EQ'.
APPEND it_matnr.
ENDSELECT.
这样下面的select语句就可以in 这个range了。
IF NOT it_matnr[] IS INITIAL.
"对于没有子part和group part关系的物料
SELECT
ebeln
ebelp INTO CORRESPONDING FIELDS OF TABLE it_po1 FROM ekpo WHERE matnr IN it_matnr.