Multiple conditions in a SELECT statement?

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

This worked. Basically I just needed a space adjacent to the brackets.

Share:
26,946
Seyren
Author by

Seyren

Updated on December 24, 2020

Comments

  • Seyren
    Seyren over 3 years

    First off, I have no experience with ABAP, I'm operating on guesswork here.

    I want to add a condition to a SELECT in an existing report. The existing code looks like this:

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

    I want to add a condition to exclude the record if field F1 is a certain value and field F2 is 0 (both conditions must be true to exclude the record). I've tried this:

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

    I get a syntax error: Field "F1 = 'value' AND F2 = '0'" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement.

    Fields F1 and F2 definitely exist in the EKPO table, I've checked. It seems that the brackets are making the compiler look at the contents as a field name, but I don't know why.

    Is the syntax incorrect, am I missing a definition somewhere, or both?

  • Jorg
    Jorg almost 12 years
    for the future: almost everything in ABAP needs that space, like method calls.