Упражнения по SQL в больнице База данных: найдите имена всех пациентов, у которых было как минимум два приема, где медсестра, которая подготовила прием, была зарегистрированной медсестрой и врачом, который осуществлял первичную помощь
База данных больницы SQL: Упражнение 38 с решением
38. Напишите запрос на языке SQL, чтобы получить имена всех пациентов, у которых было по крайней мере два приема, где медсестра, которая подготовила прием, была зарегистрированной медсестрой и врачом, который оказывал первичную медицинскую помощь.
Пример таблицы: назначение
Образец таблицы: пациент
Пример таблицы: медсестра
Пример таблицы: врач
Пример решения:
SELECT pt.name AS "Patient",
p.name AS "Primary Physician",
n.name AS "Nurse"
FROM appointment a
JOIN patient pt ON a.patient=pt.ssn
JOIN nurse n ON a.prepnurse=n.employeeid
JOIN physician p ON pt.pcp=p.employeeid
WHERE a.patient IN
(SELECT patient
FROM appointment a
GROUP BY a.patient
HAVING count(*)>=2)
AND n.registered='true'
ORDER BY pt.name;
Пример вывода:
Пациент | Первичный врач | Медсестра --------------- + ------------------- + -------------- --- Деннис Доу | Кристофер Терк | Лаверн Робертс Грейс Ричи | Эллиот Рид | Карла Эспиноса Грейс Ричи | Эллиот Рид | Карла Эспиноса Джон Смит | Джон Дориан | Карла Эспиноса Джон Смит | Джон Дориан | Лаверн Робертс (5 рядов)
Практика онлайн
ER схема базы данных больницы:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: напишите запрос в SQL, чтобы получить имена всех пациентов, которые прошли процедуру стоимостью более 5000 долларов США, и имя врача, который оказывал первичную медицинскую помощь.
Далее: Напишите запрос на языке SQL, чтобы получить имена всех пациентов, чью первичную помощь оказывает врач, который не является главой какого-либо отделения, и имя этого врача вместе с их лечащим врачом.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования