부제:
취소되지 않은 진료 예약 조회하기, 레벨 4
1. 문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/132204
2. 정답 코드:
SELECT
a.apnt_no,
p.pt_name,
a.pt_no,
a.mcdp_cd,
d.dr_name,
a.apnt_ymd
from appointment as a
inner join patient as p
on a.pt_no = p.pt_no
inner join doctor as d
on d.dr_id = a.mddr_id
where date(apnt_ymd) = '2022-04-13'
and apnt_cncl_yn = 'n'
and d.mcdp_cd = 'cs'
order by a.apnt_ymd asc;
3. 오류 상황:
SELECT
a.apnt_no,
p.pt_name,
a.pt_no,
a.mcdp_cd,
d.dr_name,
a.apnt_ymd
from appointment as a
inner join patient as p
on a.pt_no = p.pt_no
inner join doctor as d
on d.dr_id = a.mddr_id
where apnt_ymd like ('%2022-04-13%')
and apnt_cncl_yn = 'y'
and d.mcdp_cd = 'cs'
order by a.apnt_ymd asc;
=> '취소되지 않은' 내역 조회 오류
=> 날짜 필터링 오류
4. 시도 방법:
=> apnt_cncl_yn = 'n' 조회
=> date() 함수 활용
5. 최종 문제 해결 방법:
=> Y는 Yes(취소됨), N은 No(취소되지 않음)를 의미하기 때문에 apnt_cncl_yn = 'n' 조회
=> DATE_FORMAT(apnt_ymd, '%Y-%m-%d') = '2022-04-13' 처럼 날짜 부분만 추출해서 비교하거나, DATE(apnt_ymd) = '2022-04-13' 같은 함수를 사용
'SQL 알고리즘 코드카타' 카테고리의 다른 글
| SQL 알고리즘 코드카타 20일차(1) 26.01.18(일) (0) | 2026.01.18 |
|---|---|
| SQL 알고리즘 코드카타 19일차(5) 26.01.17(토) (0) | 2026.01.17 |
| SQL 알고리즘 코드카타 19일차(3) 26.01.17(토) (0) | 2026.01.17 |
| SQL 알고리즘 코드카타 19일차(2) 26.01.17(토) (0) | 2026.01.17 |
| SQL 알고리즘 코드카타 19일차(1) 26.01.17(토) (0) | 2026.01.17 |