Несколько условий в инструкции SELECT?

Во-первых, у меня нет опыта работы с 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 = 'значение' И F2 = '0'» неизвестно. Он не входит ни в одну из указанных таблиц и не определяется оператором «DATA».

Поля F1 и F2 определенно существуют в таблице EKPO, я проверил. Кажется, что скобки заставляют компилятор смотреть на содержимое как на имя поля, но я не знаю почему.

Синтаксис неверен, я где-то пропустил определение или и то, и другое?


person Seyren    schedule 24.07.2012    source источник


Ответы (1)


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

Это сработало. В основном мне просто нужно было место рядом с скобками.

person Seyren    schedule 24.07.2012
comment
на будущее: это пространство требуется почти всему в ABAP, например вызовам методов. - person Jorg; 24.07.2012