[프로그래머스 Lv.4] 취소되지 않은 진료 예약 조회하기

너구리로소이다·2023년 3월 25일
0

programmers-SQL

목록 보기
66/76
post-thumbnail

코딩테스트 연습 - 취소되지 않은 진료 예약 조회하기

문제 설명

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

PATIENT 테이블은 다음과 같으며,
PT_NO, PT_NAME, GEND_CD, AGE, TLNO는 각각 환자번호, 환자이름, 성별코드, 나이, 전화번호를 의미합니다.

Column nameTypeNullable
PT_NOVARCHAR(N)FALSE
PT_NAMEVARCHAR(N)FALSE
GEND_CDVARCHAR(N)FALSE
AGEINTEGERFALSE
TLNOVARCHAR(N)TRUE

DOCTOR 테이블은 다음과 같으며
DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.

Column nameTypeNullable
DR_NAMEVARCHAR(N)FALSE
DR_IDVARCHAR(N)FALSE
LCNS_NOVARCHAR(N)FALSE
HIRE_YMDDATEFALSE
MCDP_CDVARCHAR(N)TRUE
TLNOVARCHAR(N)TRUE

APPOINTMENT 테이블은 다음과 같으며,
APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN, APNT_CNCL_YMD는 각각 진료 예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냅니다.

Column nameTypeNullable
APNT_YMDTIMESTAMPFALSE
APNT_NOINTEGERFALSE
PT_NOVARCHAR(N)FALSE
MCDP_CDVARCHAR(N)FALSE
MDDR_IDVARCHAR(N)FALSE
APNT_CNCL_YNVARCHAR(N)TRUE
APNT_CNCL_YMDDATETRUE

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

풀이

✨ KEYWORD CHECK

  • 2022년 4월 13일 취소되지 않은
  • 흉부외과(CS) 진료
  • 예약 내역을 조회(진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시)
  • 진료예약일시를 기준으로 오름차순 정렬

결과

-- 2022년 4월 13일 취소되지 않은
-- 흉부외과(CS) 진료
-- 예약 내역을 조회(진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시)
-- 진료예약일시를 기준으로 오름차순 정렬
SELECT AP.APNT_NO, P.PT_NAME, P.PT_NO, D.MCDP_CD, D.DR_NAME, AP.APNT_YMD
FROM APPOINTMENT AP
INNER JOIN PATIENT P
ON P.PT_NO = AP.PT_NO
INNER JOIN DOCTOR D
ON D.DR_ID = AP.MDDR_ID
WHERE TO_CHAR(AP.APNT_YMD,'YYYYMMDD') = '20220413'
AND AP.APNT_CNCL_YN = 'N'
AND AP.MCDP_CD = 'CS'
ORDER BY APNT_YMD
profile
일단 해보자 뭐든 되겠지 😄

0개의 댓글