[68] 부트캠프 TIL - 본캠프 49일차

2024. 10. 31. 15:58부트캠프 TIL

728x90

1. 프로그래머스 사용

1-1)  sql 문제 : 취소되지 않은 진료예약 조회하기 - Lv.4

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

 

 

문제풀이)

1) 문제를 읽고 필요한 조건들을 체크한다

- 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목 출력

 

2) 2022년 4월 13일 데이터

- 진료예약일시 4월 13일 where절로 체크

 

3) 취소되지 않은 흉부외과(cs) 예약내역

- 취소여부, 진료과코드 값 and절로 체크

 

4) 진료예약일시 기준 오름차순

- order by asc를 활용해야함.

 

5) 최종 완성 쿼리문

-

SELECT a.APNT_NO, c.PT_NAME, c.PT_NO, a.MCDP_CD, b.DR_NAME, a.APNT_YMD 
FROM APPOINTMENT as a
LEFT JOIN DOCTOR as b ON a.MDDR_ID = b.DR_ID 
LEFT JOIN PATIENT as c ON a.PT_NO = c.PT_NO
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 a.APNT_YMD ASC

- 문제 풀이로만 보면 컬럼들 불러오고, 특정 조건들 where과 and로 주면되서 간단한 문제인것처럼 보인다.

- 그러나 테이블 3개를 다중 join을 진행해야하고, 서로 참조되는 컬럼이 뭔지 체크를 잘해야한다.

- 다중 조인과 참조되는 컬럼 비교만 잘하면 바로 해결되는 문제이다.

- 다중 조인은 양쪽 테이블과 다 참조될 테이블을 먼저 기준으로 잡고 각 테이블들을 조인시키는 형태로 진행하면된다.

- 문제에선 진료예약이 메인이 되고, 의사정보,환자정보테이블이 서브로 참조할 수 있다.

- a.MDDR_ID = b.DR_ID  의사ID를 기준으로 의사정보테이블에서 문제에서 요구하는 의사이름을 가져온다 .

- a.PT_NO = c.PT_NO 환자번호를 기준으로 환자정보테이블에서 문제에서 요구하는 환자이름, 환자번호를 가져온다.

 

2. aop 완성 및 트러블 슈팅 기록

https://kuk1938.tistory.com/191

 

[12] Spring - 심화과제 aop 등 트러블슈팅

🛠️ 트러블슈팅 - aop에서 Pointcut의 경로문제1. 개요- 심화과제 aop를 만드는 도중에 생겼던 이슈에 대해서 작성해보겠습니다. 2. 배경- 요구사항에 맞게 특정 메서드 2개에 대해서 @Pointcut 어노

kuk1938.tistory.com

 

https://kuk1938.tistory.com/192

 

[13] Spring - lv 5 내가 정의한 문제와 해결과정

※ 지난번 조별프로젝트에 대해서 리팩토링을 일부 진행했으며, 해당 부분에서 정의한 문제와 해결과정을 작성해보겠습니다. 📁️ 프로젝트 설명https://kuk1938.tistory.com/184 [9] Spring - 조별프로

kuk1938.tistory.com

 

728x90