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๋ฅผ ์ํด์ค๋ ๋๋๊น ํธํจ
๊ฒฐ๊ณผ๋?
๋๊ฐ๋ค~!
๋ฐ์ํ