300x250
728x90
# SAP SELECT CASE란?
# SELECT 구문에서 CASE문을 사용해 조건에 따라서 더하거나 곱하거나 등등.. 데이터를 가공할 수가 있다.
# CASE문을 SELECT에 쓴다고 생각하면 쉬울 것이다.( 뭐 똑같은 거니깐... )
# SAP SELECT CASE 예시
예를 들어서
SCARR Table에서 CURRCODE가 USD인 경우에는
CARRNAME 옆에 (달러)라고 붙여주세요.
# 원래는 SELECT문을 통해서 SCARR Data를 가져와서 LOOP문을 돌아 Modify를 하거나 등등 그런 식으로 해줘야 하는데 CASE문을 쓰면 그럴 필요가 없다
SELECT
CARRID,
CASE CURRCODE " 기준 조건 "
WHEN 'USD' THEN ( CARRNAME && '(달러)' )
ELSE CARRNAME
END AS CARRNAME, " 변경 할 값 "
CURRCODE,
URL
FROM SCARR
INTO TABLE @DATA(LT_LIST).
CL_DEMO_OUTPUT=>DISPLAY( LT_LIST ).
#01. SCARR 가져오는 SELECT문을 만들어보자.
#02. 기준이 되는 CURRCODE를 기준 조건으로 잡고, CARRNAME 변경해야 하기 때문에 다음과 같이 만들어주자.
#03. 이제 'USD' 조건을 걸어서 (달러)를 붙여보자.
일단 실행해 보자.
#04. 'USD'가 아닌 나머지 CARRNAME문도 넣어줘야 하기 때문에 다음과 같이 설정해 보자.
이런 식으로 조건을 걸어서 데이터를 가공할 수가 있다
CASE문 비교 조건
# 간단하게 해 보자.
# SFLIGHT Table에서 SEATSMAX( 일반석 최대 정원 ) 에서 350이 넘으면 큰 비행기, 200이 안 넘으면 작은 비행기로 나눠서 SEATSMAX 값에다가 넣어보자 에 넣어보자.
# 이런 식으로 하면 된다!
SELECT CASE문 에러
# CASE문을 하다보면 다음과 같은 에러가 나올 수 있다. 이럴 때에는 CAST를 사용해서 다음과 같이 변경해주면 된다.
The maximum possible number of places in the expression starting with DMBTR is 34 places with 2 decimal places. There can be, however, no more than 31 places and 14 decimal places.
#01. 에러가 나오는 로직
#02. DMBTR에 대한 에러가 나오기 때문에 No.Characters, Decimal Places를 확인 후?
#03. CAST를 이용해서 다음과 같이 변경해주면 된다.
끝.
728x90
'.ABAP > ..모든 것' 카테고리의 다른 글
SAP Call Transaction 새 창 띄우기 (0) | 2024.01.19 |
---|---|
SAP URL 파라미터 인코딩(Base64) 정리 (0) | 2024.01.18 |
SAP Maintenance View( 유지보수 뷰 ) 정리 (2) | 2023.12.15 |
SAP Function Group 정리 (1) | 2023.12.15 |
SAP WatchPoint 정리 (0) | 2023.12.12 |