首先,我没有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'AND F2='0'"未知。它既不在指定的表中,也不由"DATA"语句定义。
字段F1和F2肯定存在于EKPO表中,我已经检查过了。括号似乎使编译器将内容视为字段名,但我不知道为什么。
语法是否不正确,我是否在某个地方缺少定义,或者两者兼而有之?
SELECT SINGLE *
FROM EKPO
WHERE EBELN = GT_MSEG-EBELN
AND EBELP = GT_MSEG-EBELP
AND NOT ( F1 = 'value' AND F2 = '0' ).
这起到了作用。基本上,我只需要在括号旁边留出一个空间。