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

时间:2012-07-24 03:17:02

标签: select sap abap

首先,我没有使用ABAP的经验,我在这里进行猜测。

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

SELECT SINGLE *
  FROM EKPO
  WHERE EBELN = GT_MSEG-EBELN
  AND   EBELP = GT_MSEG-EBELP.

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

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

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

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

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

1 个答案:

答案 0 :(得分:10)

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

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