SQL

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค level 4] ์ทจ์†Œ๋˜์ง€ ์•Š์€ ์ง„๋ฃŒ ์˜ˆ์•ฝํ•˜๊ธฐ

1eehyunji 2023. 8. 2. 18:38

๋ฌธ์ œ ์„ค๋ช…

๋‹ค์Œ์€ ํ™˜์ž ์ •๋ณด๋ฅผ ๋‹ด์€ PATIENT ํ…Œ์ด๋ธ”๊ณผ ์˜์‚ฌ ์ •๋ณด๋ฅผ ๋‹ด์€ DOCTOR ํ…Œ์ด๋ธ”, ๊ทธ๋ฆฌ๊ณ  ์ง„๋ฃŒ ์˜ˆ์•ฝ๋ชฉ๋ก์„ ๋‹ด์€ APPOINTMENT์— ๋Œ€ํ•œ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. PATIENT ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ PT_NO, PT_NAME, GEND_CD, AGE, TLNO๋Š” ๊ฐ๊ฐ ํ™˜์ž๋ฒˆํ˜ธ, ํ™˜์ž์ด๋ฆ„, ์„ฑ๋ณ„์ฝ”๋“œ, ๋‚˜์ด, ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Column nameTypeNullable

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 nameTypeNullable

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 nameTypeNullable

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 APNT_NO,PT_NAME,PATIENT.PT_NO,APPOINTMENT.MCDP_CD,DR_NAME,APNT_YMD 
FROM APPOINTMENT
JOIN PATIENT ON PATIENT.PT_NO=APPOINTMENT.PT_NO
JOIN DOCTOR ON DOCTOR.DR_ID=APPOINTMENT.MDDR_ID
WHERE APNT_YMD LIKE '2022-04-13%'
AND
APNT_CNCL_YN='N'
AND 
APPOINTMENT.MCDP_CD='CS'
ORDER BY APNT_YMD;
  • APPOINTMENT ํ…Œ์ด๋ธ”์„ PATIENT ํ…Œ์ด๋ธ”๊ณผ ํ™˜์ž ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ JOIN, DOCTOR ํ…Œ์ด๋ธ”๊ณผ ์˜์‚ฌ ์•„์ด๋””๋ฅผ ๊ธฐ์ค€์œผ๋กœ JOINํ•œ๋‹ค.
  • ์ง„๋ฃŒ์˜ˆ์•ฝ์ผ์‹œ(APNT_YMD)๊ฐ€ 2022๋…„ 4์›” 13์ผ์ธ ๋ฐ์ดํ„ฐ
  • ์ง„๋ฃŒ์˜ˆ์•ฝ์ทจ์†Œ์—ฌ๋ถ€(APNT_CNCL_YN)์ด ์ทจ์†Œ๊ฐ€ ๋˜์ง€ ์•Š์€ ์˜ˆ์•ฝ์„ ๋œปํ•˜๋Š” 'N'์ธ ๋ฐ์ดํ„ฐ
  • ์ง„๋ฃŒ๊ณผ๋ชฉ(MCDP_CD)์ด ํ‰๋ถ€์™ธ๊ณผ(CS)์ธ ๋ฐ์ดํ„ฐ
  • ์œ„ ์„ธ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ๋‹ค.
  • ์ง„๋ฃŒ์˜ˆ์•ฝ ๋ฒˆํ˜ธ, ํ™˜์ž ์ด๋ฆ„, ํ™˜์ž ๋ฒˆํ˜ธ, ์ง„๋ฃŒ๊ณผ์ฝ”๋“œ, ์˜์‚ฌ ์ด๋ฆ„, ์ง„๋ฃŒ์˜ˆ์•ฝ์ผ์‹œ๋ฅผ ์ถ”์ถœํ•˜๊ณ ,  ์ง„๋ฃŒ์˜ˆ์•ฝ์ผ์‹œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.