如何在ABAP中的SELECT语句中对条件进行分组?

Sey*_*ren 4 sap abap select

首先,我没有ABAP的经验,我在这里做猜测.

我想在现有报告中为SELECT添加一个条件.现有代码如下所示:

SELECT SINGLE *
  FROM EKPO
  WHERE EBELN = GT_MSEG-EBELN
  AND   EBELP = GT_MSEG-EBELP.
Run Code Online (Sandbox Code Playgroud)

我想添加一个条件来排除记录,如果字段F1是某个值并且字段F2是0(两个条件必须为真以排除记录).我试过这个:

SELECT SINGLE *
  FROM EKPO
  WHERE EBELN = GT_MSEG-EBELN
  AND   EBELP = GT_MSEG-EBELP
  AND NOT (F1 = 'value' AND F2 = '0').
Run Code Online (Sandbox Code Playgroud)

我收到语法错误:字段"F1 ='值'和F2 ='0'"未知.它既不在指定的表中,也不由"DATA"语句定义.

字段F1和F2肯定存在于EKPO表中,我已经检查过了.似乎括号使编译器将内容视为字段名称,但我不知道为什么.

语法不正确,我在某个地方错过了定义,还是两者都错过了?

Sey*_*ren 10

SELECT SINGLE *
  FROM EKPO
  WHERE EBELN = GT_MSEG-EBELN
  AND   EBELP = GT_MSEG-EBELP
  AND NOT ( F1 = 'value' AND F2 = '0' ).
Run Code Online (Sandbox Code Playgroud)

这很有效.基本上我只需要一个与括号相邻的空间.

  • 对于未来:ABAP中几乎所有东西都需要这个空间,比如方法调用. (3认同)