Select 来自 ( ) table 中的哪里?

Select from where in ( ) table?

我想要在 ABAP 语法中具有动态 where 条件的 select。

SQL 语句如下所示:

SELECT * FROM MCH1 WHERE MATNR IN (...) AND CHARG IN (...)

我的方法是将 2 个结构 ZMATN_STRZCHARG_STR 添加到字典中,并将相关组件作为行 (MATNRCHARG)。 然后创建 2 个 table 类型和关联的线型。

现在我卡在 ABAP 中了,因为我不知道如何编写 where 子句。 这就是我到目前为止所拥有的:

SELECT *
 FROM
  mch1
  FOR ALL ENTRIES IN @matnrs
 WHERE
    matnr = @matnrs-matnr
INTO TABLE @DATA(lt_result).

它适用于 matnr 或 charg,但不适用于两者。

附加信息

这个 select 发生在一个函数模块中,其中存在 2 个导入参数(2 个 table 类型) - 所以我不能只写 where in ('xxx', 'yyy')

data lr_matnr type range of matnr.
data lr_charg type range of MCH1-charg.
"Fill lr_matnr and lr_charg...
SELECT * FROM MCH1 WHERE MATNR IN @lr_matnr AND CHARG IN @lr_charg
  into @data(lt_result).