5

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

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

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

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

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

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

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

语法是否不正确,我是否在某处遗漏了定义,或两者兼而有之?

4

1 回答 1

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

这行得通。基本上我只需要一个与括号相邻的空间。

于 2012-07-24T04:03:25.737 回答