ABAP

[ABAP] SELECT ํ•  ๋•Œ ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต์—†์ด ๋ฐ”๋กœ ์•„์ด์ฝ˜ ๋„ฃ๊ธฐ (CASE WHEN ์‚ฌ์šฉ)

mrexuex 2024. 4. 29. 14:20

๐Ÿšฉ TOP์— ์„ ์–ธํ•œ ICON์„ ๋”๋ธ”ํด๋ฆญ ํ•ด๋ณด๊ธฐ

 

์ด๋Ÿฐ ํ™”๋ฉด์œผ๋กœ ์ด๋™๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ์ž๊ธฐ๊ฐ€ ์‚ฌ์šฉํ•  ์•„์ด์ฝ˜์ด ์ •์˜๋œ ์ด๋ฆ„์„ ์ฐพ๋Š”๋‹ค!

์ด์ œ ์šฐ๋ฆฌ๋Š” ์ดˆ๋ก์ƒ‰์œผ๋กœ ๋œ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ• ๊ฑฐ์ž„~

 

 

 

๐Ÿšฉ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ SELECT ํ•˜๊ธฐ

SELECT CARRID,
       CONNID,
       SEATSOCC,
  CASE WHEN SEATSOCC > 0 THEN '@08@' "ICON_GREEN_LIGHT.
                         ELSE '@0A@' "ICON_RED_LIGHT.
  END AS STATUS
  FROM SFLIGHT
 WHERE CARRID = 'AA'
  INTO TABLE @DATA(LT_DATA).

 

๋‚จ์€ ์ขŒ์„์ด 0์ด์ƒ์ธ ๋ฐ์ดํ„ฐ๋Š” ์ดˆ๋ก์ƒ‰, ๊ทธ ์™ธ์—” ๋นจ๊ฐ„์ƒ‰ ์‹ ํ˜ธ๋“ฑ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ์ด๋Ÿฐ์‹์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋””๋ฒ„๊น…์„ ํ•ด๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์‹ ํ˜ธ๋“ฑ์ด ๋ฐ”๋กœ ๋“ค์–ด์˜ค๋Š”๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹น

 

 

 

 

๐Ÿšฉ ๊ธฐ์กด ๋ฐฉ๋ฒ•๋Œ€๋กœ ํ–ˆ๋‹ค๋ฉด?

TYPES : BEGIN OF LTY_DATA,
          CARRID   TYPE SFLIGHT-CARRID,
          CONNID   TYPE SFLIGHT-CONNID,
          SEATSOCC TYPE SFLIGHT-SEATSOCC,
          STATUS   TYPE ICON_D,
        END OF LTY_DATA.

DATA : LT_DATA TYPE TABLE OF LTY_DATA.

SELECT CARRID,
       CONNID,
       SEATSOCC
  FROM SFLIGHT
 WHERE CARRID = 'AA'
  INTO CORRESPONDING FIELDS OF TABLE @LT_DATA.

 

๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ๋จผ์ € ๋ฐ์ดํ„ฐ ์„ ์–ธ์„ ํ•˜๊ณ 

 

LOOP AT LT_DATA INTO DATA(LS_DATA).
  IF LS_DATA-SEATSOCC > 0.
    LS_DATA-STATUS = ICON_GREEN_LIGHT.
  ELSE.
    LS_DATA-STATUS = ICON_RED_LIGHT.
  ENDIF.

  MODIFY LT_DATA FROM LS_DATA.
ENDLOOP.

 

๋ฃจํ”„๋ฅผ ๋Œ์•„๊ฐ€๋ฉฐ ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด์คฌ์„ ๊ฒƒ

์ž๋งคํ’ˆ์œผ๋กœ

 

LOOP AT LT_DATA ASSIGNING FIELD-SYMBOL(<FS_DATA>).
  IF <FS_DATA>-SEATSOCC > 0.
    <FS_DATA>-STATUS = ICON_GREEN_LIGHT.
  ELSE.
    <FS_DATA>-STATUS = ICON_RED_LIGHT.
  ENDIF.
ENDLOOP.

 

ํ•„๋“œ์‹ฌ๋ณผ์ด ์žˆ์Œ

์ด๊ฑด MODIFY๋ฅผ ์•ˆํ•ด์ค˜๋„ ๋˜๋‹ˆ๊นŒ ํŽธํ•จ

๊ฒฐ๊ณผ๋Š”?

 

 

๋˜‘๊ฐ™๋‹ค~!

๋ฐ˜์‘ํ˜•