https://school.programmers.co.kr/learn/courses/30/lessons/132204

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드설명

INNER JOIN(삼중조인) DATE_FORMAT 을 활용합니다.

삼중조인을 한뒤, APPOINTMENT 만이 DOCTOR와 PATIENT의 역할을 동시에 가지고 있기 때문에 이러한 특성을 이용해서 데이터를 가져옵니다.

코드

SELECT AP.APNT_NO, P.PT_NAME, P.PT_NO, AP.MCDP_CD, D.DR_NAME, AP.APNT_YMD
FROM PATIENT AS P
INNER JOIN APPOINTMENT AS AP
ON P.PT_NO = AP.PT_NO
INNER JOIN DOCTOR AS D
ON AP.MDDR_ID = D.DR_ID
WHERE DATE_FORMAT(AP.APNT_YMD, '%Y-%m-%d') = '2022-04-13' AND AP.APNT_CNCL_YN = 'N'
ORDER BY AP.APNT_YMD ASC

 

ORACLE

SELECT A.APNT_NO, P.PT_NAME, A.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 A.APNT_CNCL_YMD IS NULL AND A.MCDP_CD = 'CS' AND TO_CHAR(A.APNT_YMD, 'YYYY-MM-DD') = '2022-04-13'
ORDER BY A.APNT_YMD ASC

+ Recent posts