ABAP将值硬编码到SELECT中,并将字段硬编码到另一个字段中

ABAP将值硬编码到SELECT中,并将字段硬编码到另一个字段中,abap,opensql,Abap,Opensql,在ABAP中,可以选择并包含硬代码值,并在任何字段中输入值 在我的示例中,我必须根据VKORG使用公司代码BUKRS填充一个范围,因此我必须在TVKO上进行选择,如下所示: DATA : lt_rtvko TYPE RANGE OF bukrs. SELECT 'I' as sign 'EQ' as option bukrs as low INTO CORRESPONDING FIELDS OF TABLE lt_rtvko FROM tvko WH

在ABAP中,可以选择并包含硬代码值,并在任何字段中输入值

在我的示例中,我必须根据VKORG使用公司代码BUKRS填充一个范围,因此我必须在TVKO上进行选择,如下所示:

DATA : lt_rtvko TYPE RANGE OF bukrs.

  SELECT    'I' as sign 'EQ' as option bukrs as low 
  INTO      CORRESPONDING FIELDS OF TABLE lt_rtvko
  FROM      tvko
  WHERE     vkorg EQ p_vkorg.
但是我有个垃圾桶

我知道一个较长的解决方案,手动填充TVKO表并创建一个循环来填充范围,但我确信我们有一个解决方案可以在一个操作中完成,就像我的示例中一样


谢谢,专家们。

这其实很简单。只需将
转换为相应的
AS
。只要值顺序正确,就不会有问题:

SELECT 'I', 'EQ', bukrs
  FROM tvko
  INTO TABLE @lt_rtvko
 WHERE vkorg = @p_vkorg.
我认为你的射程声明有一个输入错误。应该是:

DATA: lt_rtvko TYPE RANGE OF bukrs.

垃圾场怎么说?你为什么不删除
的相应字段呢?是的,你是对的,我把它改成了范围BUKRS的类型。@是什么意思?我不知道这个语法@这是新的OpenSQL语法。
@
符号将符号标记为主机变量。几乎没有魔法作用。选择列表中的逗号也是如此。只是为了光学。阅读