From Zero to SAP

[실습] Open SQL과 CDS View 활용 본문

ABAP/실습

[실습] Open SQL과 CDS View 활용

권쌥 2026. 4. 6. 17:43

문제 14. 특정 컬럼만 조회

직원 테이블에서 아래 컬럼만 조회하세요.

  • emp_id
  • emp_name
  • salary

조건:

  • SELECT emp_id, emp_name, salary

목적:

  • SELECT *와 필요한 컬럼만 조회하는 차이 익히기

[CODE]

첫 번째 풀이

첫 번째 풀이에서는 DB 테이블 전체 구조를 다 들고 올 필요 없이 필요한 컬럼만 가진 구조체 타입으로 이터널 테이블을 선언했다.

그런데, 위와 같은 방식에서는 DB 테이블 타입이 뭐였는지 하나하나 체크했어야하는 번거로움이 있었고 하드 코딩이기에 안정성이 보장되지 않는다는 문제가 있다고 생각했다. 

 

개선된 두 번째 풀이

로컬 구조체의 필드 타입을 DB 테이블의 필드를 참조하여 선언하면, DB 테이블의 필드 타입이 변경되더라도 해당 타입 정의를 그대로 따라가기 때문에 타입 불일치 문제를 줄일 수 있다.


문제 15. 정렬 조회

급여가 높은 순으로 직원 목록을 조회하세요.

조건:

  • ORDER BY salary DESCENDING

목적:

  • 정렬

[CODE]

DESCENDING을 생략하면 오름차순 정렬이 기본값이다.


문제 16. 건수 세기

직원 수가 총 몇 명인지 출력하세요.

조건:

  • SELECT COUNT(*)

목적:

  • 집계 함수
  • SQL 감각 키우기

[CODE]

COUNT() 함수의 결과는 단일 값만 나온다. 따라서, 정수를 담을 변수(lv_count)를 선언해서 여기에 담아줘야한다.


CDS View 입문 (단순 테이블 읽기가 아닌, 보여주기 좋은 조회 전용 모델 만들기)

문제 17. 기본 CDS View 만들기

문제 7의 직원 테이블을 기반으로 CDS View Entity를 만드세요.

뷰명 예시:

Z_I_EMP_###

필드:

  • emp_id
  • emp_name
  • dept
  • salary
  • currency

조건:

  • view entity 방식 사용
  • key 지정

목적:

  • CDS 기본 문법
  • define view entity


문제 18. CDS View 미리보기

문제 17에서 만든 CDS View를 Data Preview로 확인하세요.

확인할 것:

  • 테이블 데이터가 CDS를 통해 잘 보이는지
  • key가 어떻게 보이는지
  • 필드명이 어떻게 나오는지

목적:

  • ADT에서 CDS 결과 확인하는 습관 익히기


문제 19. 조건 있는 CDS View

부서가 IT인 직원만 보여주는 CDS View를 만드세요.

조건:

  • WHERE 절 사용

목적:

  • 필터링된 조회 모델
  • 테이블 전체와 목적별 뷰의 차이 이해

 

CDS View를 활용하면 조회 목적에 맞게 테이블 데이터를 가공하여 여러 필요한 데이터들만 잘 보여줄 수 있다.

(원본 테이블 데이터를 그대로 노출하지 않는 장점이 있음)

즉 같은 원본 테이블 하나로도 인사팀용 뷰, 급여 확인용 뷰, IT 부서 직원만 보는 뷰, Fiori 화면용 뷰를 각각 따로 만들 수 있다!


 

문제 21. 직원 목록 리포트

다음 요구사항을 만족하는 클래스를 작성하세요.

요구사항:

  • DB 테이블에서 직원 전체 조회
  • 급여 5000 이상이면 HIGH
  • 아니면 NORMAL
  • 아래 형식으로 출력

예시:

1001 / KIM / SALES / 5000 / HIGH
1002 / LEE / HR / 4500 / NORMAL
1003 / PARK / IT / 6000 / HIGH

목적:

  • SELECT
  • LOOP
  • 조건문
  • 출력 한 번에 연결


문제 22. 부서별 직원 수 세기

직원 데이터를 조회해서

  • SALES 부서 몇 명
  • HR 부서 몇 명
  • IT 부서 몇 명

을 출력하세요.

목적:

  • 루프 안 분기
  • 집계 개념