김병철 멘토님께서 주신 코드 (2021-06-12)
REPORT Z0612_00_HEOM.
DATA LT_SFLIGHT LIKE TABLE OF SFLIGHT WITH HEADER LINE.
*--------------------------------------------------------------------*
* SUB QUERY- IN EQ
* LIKE
*--------------------------------------------------------------------*
SELECT *
INTO TABLE LT_SFLIGHT
FROM SFLIGHT
WHERE CARRID IN ( SELECT CARRID
FROM SFLIGHT
WHERE CARRID LIKE 'A%' )
AND FLDATE EQ ( SELECT MAX( FLDATE )
FROM SFLIGHT
WHERE CONNID < 100
OR CONNID BETWEEN 701 AND 800 ).
*--------------------------------------------------------------------*
* APPENDING
* LEFT OUTER JOIN
*--------------------------------------------------------------------*
APPEND INITIAL LINE TO LT_SFLIGHT.
SELECT A~CARRID B~CONNID B~FLDATE
APPENDING CORRESPONDING FIELDS OF TABLE LT_SFLIGHT
FROM SCARR AS A LEFT OUTER JOIN SFLIGHT AS B ON
A~CARRID = B~CARRID
WHERE A~CARRID EQ 'AC'.
*--------------------------------------------------------------------*
* APPENDING
* GROUP BY / HAVING
*--------------------------------------------------------------------*
APPEND INITIAL LINE TO LT_SFLIGHT.
SELECT CARRID CONNID PAYMENTSUM
UP TO 5 ROWS
APPENDING CORRESPONDING FIELDS OF TABLE LT_SFLIGHT
FROM SFLIGHT
WHERE CARRID NOT LIKE 'A_'
GROUP BY CARRID CONNID PAYMENTSUM
HAVING PAYMENTSUM > ( SELECT AVG( PAYMENTSUM )
FROM SFLIGHT )
ORDER BY PAYMENTSUM DESCENDING.
*--------------------------------------------------------------------*
* COUNT
*--------------------------------------------------------------------*
APPEND INITIAL LINE TO LT_SFLIGHT.
SELECT CARRID COUNT( * ) AS PRICE
APPENDING CORRESPONDING FIELDS OF TABLE LT_SFLIGHT
FROM SFLIGHT
GROUP BY CARRID .
*--------------------------------------------------------------------*
* SUM
*--------------------------------------------------------------------*
APPEND INITIAL LINE TO LT_SFLIGHT.
SELECT CARRID SUM( SEATSMAX ) AS SEATSMAX
APPENDING CORRESPONDING FIELDS OF TABLE LT_SFLIGHT
FROM SFLIGHT
GROUP BY CARRID.
IF LT_SFLIGHT[] IS NOT INITIAL. .
CL_DEMO_OUTPUT=>DISPLAY( LT_SFLIGHT[] ).
ELSE.
WRITE '조건에 일치하는 데이터가 없습니다.'.
ENDIF.
'SAP > ABAP 코드' 카테고리의 다른 글
(ABAP 코드) ABAP Memory (0) | 2021.06.23 |
---|---|
(ABAP 코드) ABAP OPEN SQL 코드 (0) | 2021.06.13 |
(ABAP 코드) INTERNAL TABLE 코드 (0) | 2021.06.13 |
(ABAP 코드)Work Area를 사용하여 Internal Table에 데이터 넣기 (0) | 2021.06.13 |
ABAP - INTERNAL TABLE WITH HEADER LINE (0) | 2021.05.24 |