Post

취소되지 않은 진료 예약 조회하기

String, Date

취소되지 않은 진료 예약 조회하기


문제 설명

다음은 환자 정보를 담은 PATIENT 테이블, 의사 정보를 담은 DOCTOR 테이블, 그리고 진료 예약목록을 담은 APPOINTMENT 테이블입니다.


PATIENT 테이블

Column nameTypeNullableDescription
PT_NOVARCHAR(N)FALSE환자번호
PT_NAMEVARCHAR(N)FALSE환자이름
GEND_CDVARCHAR(N)FALSE성별코드
AGEINTEGERFALSE나이
TLNOVARCHAR(N)TRUE전화번호


DOCTOR 테이블

Column nameTypeNullableDescription
DR_NAMEVARCHAR(N)FALSE의사이름
DR_IDVARCHAR(N)FALSE의사ID
LCNS_NOVARCHAR(N)FALSE면허번호
HIRE_YMDDATEFALSE고용일자
MCDP_CDVARCHAR(N)TRUE진료과코드
TLNOVARCHAR(N)TRUE전화번호


APPOINTMENT 테이블

Column nameTypeNullableDescription
APNT_YMDTIMESTAMPFALSE진료 예약일시
APNT_NOINTEGERFALSE진료예약번호
PT_NOVARCHAR(N)FALSE환자번호
MCDP_CDVARCHAR(N)FALSE진료과코드
MDDR_IDVARCHAR(N)FALSE의사ID
APNT_CNCL_YNVARCHAR(N)TRUE예약취소여부
APNT_CNCL_YMDDATETRUE예약취소날짜




문제

PATIENT, DOCTOR, APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요.




풀이 과정
  1. JOIN을 통한 테이블 결합
    • APPOINTMENT 테이블을 기준으로 PATIENTDOCTOR 테이블을 각각 PT_NOMDDR_ID를 기준으로 INNER JOIN
  2. 필터링 조건 적용
    • 진료과코드(MCDP_CD)가 ‘CS’(흉부외과)이고 예약취소여부(APNT_CNCL_YN)가 ‘N’(취소되지 않음)인 데이터 필터링
    • 진료 예약일시(APNT_YMD)가 2022년 4월 13일인 경우 선택
  3. 최종 데이터 선택 및 정렬
    • SELECT 절에서 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시를 선택
  4. 결과 정렬
    • 정렬 기준에 따라 ORDER BY로 결과 정렬
      • **APNT_YM**기준으로 오름차순 정렬
  • 교훈
    • 여러 테이블에서 데이터를 결합할 때는 적절한 JOIN을 선택하고, 필터링 조건을 명확히 설정해야 원하는 결과를 정확히 얻을 수 있습니다.




정답

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT 
    A.APNT_NO, 
    P.PT_NAME, 
    A.PT_NO, 
    A.MCDP_CD, 
    D.DR_NAME, 
    A.APNT_YMD
FROM 
    APPOINTMENT A
JOIN 
    PATIENT P ON A.PT_NO = P.PT_NO
JOIN 
    DOCTOR D ON A.MDDR_ID = D.DR_ID
WHERE 
    A.MCDP_CD = 'CS' 
    AND A.APNT_CNCL_YN = 'N' 
    AND DATE(A.APNT_YMD) = '2022-04-13'
ORDER BY 
    A.APNT_YMD;


Tip

DATE() 함수를 사용하여 TIMESTAMP에서 날짜만 추출하여 비교




개념 확인

  • INNER JOIN
    • 두 테이블 간의 공통된 데이터를 기준으로 결합
  • DATE 함수
    • TIMESTAMP에서 날짜만 추출하여 비교할 때 사용
    • ex) : **DATE(APNT_YMD) = '2022-04-13'**




취소되지 않은 진료 예약 조회하기

This post is licensed under Park Juyoung by the author.

Trending Tags