SAP/ABAP 코드

(ABAP 코드) New Open SQL - SELECT (CASE)

haramang 2021. 6. 25. 23:04

예제1)

 

* SELECT LIST에서 REM_SEATS 계산하고, CASE문을 사용하여 PRICE_ADJ 필드를 채웠음.

  SELECT CARRIDCONNIDFLDATEPRICECURRENCY,

       SEATSMAX SEATSOCC AS REM_SEATS,

      CASE

        WHEN SEATSMAX SEATSOCC >= 300 THEN PRICE * @GC_FIFTY_PERCENT )

        WHEN SEATSMAX SEATSOCC >= 200 THEN PRICE * @GC_THIRTY_PERCENT )

        WHEN SEATSMAX SEATSOCC >= 100 THEN PRICE * @GC_TWENTY_PERCENT )

        ELSE PRICE * @GC_EIGHTY_PERCENT )

        END AS PRICE_ADJ

      FROM SFLIGHT

      WHERE CARRID  @P_P_CARRID

      AND   CONNID IN @P_S_CONNID

      ORDER BY FLDATE

      INTO CORRESPONDING FIELDS OF TABLE @P_GT_SFLIGHT_PRICE.

 

 

 

 

예제2)

  SELECT A~CARRIDA~CONNIDA~FLDATEA~BOOKIDA~CUSTOMIDB~NAMEA~CLASS,

    CASE

      WHEN CLASS EQ 'Y' THEN 'Economy Class'

      WHEN CLASS EQ 'C' THEN 'Business Class'

      WHEN CLASS EQ 'F' THEN 'First Class'

      END AS CLASS_NAME,

    B~COUNTRYB~EMAIL

    INTO CORRESPONDING FIELDS OF TABLE @P_GT_BOOKING

    FROM SBOOK AS A

    INNER JOIN SCUSTOM AS B

    ON    A~CUSTOMID B~ID

    WHERE CARRID @P_P_CARRID

    AND   CONNID IN @P_S_CONNID

    ORDER BY FLDATE.