2023. 11. 9. 01:00ㆍAlgorithm/DATABASE
[문제 설명]
다음은 환자 정보를 담은 PATIENT 테이블과 의사 정보를 담은 DOCTOR 테이블, 그리고 진료 예약목록을 담은 APPOINTMENT에 대한 테이블입니다. PATIENT 테이블은 다음과 같으며 PT_NO, PT_NAME, GEND_CD, AGE, TLNO는 각각 환자번호, 환자이름, 성별코드, 나이, 전화번호를 의미합니다.
Column name Type Nullable
PT_NO VARCHAR(N) FALSE
PT_NAME VARCHAR(N) FALSE
GEND_CD VARCHAR(N) FALSE
AGE INTEGER FALSE
TLNO VARCHAR(N) TRUE
DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.
Column name Type Nullable
DR_NAME VARCHAR(N) FALSE
DR_ID VARCHAR(N) FALSE
LCNS_NO VARCHAR(N) FALSE
HIRE_YMD DATE FALSE
MCDP_CD VARCHAR(N) TRUE
TLNO VARCHAR(N) TRUE
APPOINTMENT 테이블은 다음과 같으며 APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN, APNT_CNCL_YMD는 각각 진료 예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냅니다.
Column name Type Nullable
APNT_YMD TIMESTAMP FALSE
APNT_NO INTEGER FALSE
PT_NO VARCHAR(N) FALSE
MCDP_CD VARCHAR(N) FALSE
MDDR_ID VARCHAR(N) FALSE
APNT_CNCL_YN VARCHAR(N) TRUE
APNT_CNCL_YMD DATE TRUE
[문제]
PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요.
[문제 해결]
SELECT
T1.APNT_NO AS APNT_NO
, P.PT_NAME AS PT_NAME
, T1.PT_NO AS PT_NO
, T1.MCDP_CD AS MCDP_CD
, D.DR_NAME AS DR_NAME
, T1.APNT_YMD AS APNT_YMD
FROM
(
SELECT
AP.APNT_YMD
, AP.APNT_NO
, AP.PT_NO
, AP. MCDP_CD
, AP. MDDR_ID
FROM APPOINTMENT AP
WHERE AP.APNT_CNCL_YN='N'
AND TO_CHAR(AP.APNT_YMD,'YYYYMMDD')='20220413'
AND AP. MCDP_CD='CS'
)T1
INNER JOIN PATIENT P
ON T1.PT_NO = P.PT_NO
INNER JOIN DOCTOR D
ON T1.MCDP_CD=D.MCDP_CD
AND T1.MDDR_ID=D.DR_ID
ORDER BY T1.APNT_YMD ASC
'Algorithm > DATABASE' 카테고리의 다른 글
[Algorithm /프로그래머스] 년 , 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2023.11.10 |
---|---|
[Algorithm /프로그래머스] 없어진 기록 찾기 (1) | 2023.11.10 |
[Algorithm /프로그래머스] 우유와 요거트가 담긴 장바구니 (0) | 2023.11.08 |
[Algorithm /프로그래머스] 5월 식품들의 총매출 조회하기 (0) | 2023.11.05 |
[Algorithm /프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2023.11.04 |