-
<프로그래머스> 취소되지 않은 진료 예약 조회하기코딩테스트/SQL 코딩테스트 2023. 12. 22. 21:38
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/132204
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 문제 요구사항
- PATIENT, DOCTOR, APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과 진료 예약내역 조회
- 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성
- 결과는 진료예약일시를 기준으로 오름차순 정렬
3개 테이블을 INNER JOIN하고 3가지 조건을 기입하면 문제를 해결할 수 있다.
날짜가 2022-04-13이고, 취소여부는 N, 진료과는 CS로 조건을 기입해주면 문제 해결
1) Oracle
SELECT A.APNT_NO, P.PT_NAME, P.PT_NO, A.MCDP_CD, D.DR_NAME, A.APNT_YMD FROM PATIENT P INNER JOIN APPOINTMENT A ON P.PT_NO = A.PT_NO INNER JOIN DOCTOR D ON A.MDDR_ID = D.DR_ID WHERE TO_CHAR(A.APNT_YMD, 'YYYY-MM-DD') = '2022-04-13' AND A.APNT_CNCL_YN = 'N' AND A.MCDP_CD = 'CS' ORDER BY A.APNT_YMD;
2) MySQL
SELECT A.APNT_NO, P.PT_NAME, P.PT_NO, A.MCDP_CD, D.DR_NAME, A.APNT_YMD FROM PATIENT P INNER JOIN APPOINTMENT A ON P.PT_NO = A.PT_NO INNER JOIN DOCTOR D ON A.MDDR_ID = D.DR_ID WHERE DATE_FORMAT(A.APNT_YMD, '%Y-%m-%d') = '2022-04-13' AND A.APNT_CNCL_YN = 'N' AND A.MCDP_CD = 'CS' ORDER BY 6;
'코딩테스트 > SQL 코딩테스트' 카테고리의 다른 글
<프로그래머스> 년, 월, 성별 별 상품 구매 회원 수 구하기 (2) 2023.12.22 <프로그래머스> 서울에 위치한 식당 목록 출력하기 (1) 2023.12.22 <프로그래머스> 조건에 부합하는 중고거래 상태 조회하기 (1) 2023.12.22 <프로그래머스> 특정 옵션이 포함된 자동차 리스트 구하기 (0) 2023.12.22 <프로그래머스> 자동차 대여 기록에서 장기/단기 대여 구분하기 (1) 2023.12.22 - 문제 요구사항