Билет 20
5) Пациент(КодПациента, ФИОПациента, Категория, ДатаРождения) – справочник пациентов;
Врач( КодВрача, ФИОВрача, Спец, Стаж) – справочник врачей;
Прием( КодПациента, КодВрача, ДатаВремя, Кабинет) – прием пациента врачом;
Извлечь пациентов посетивших врача в текущем году, и врачей, принявших пациентов тоже в текущем году. Результат должен содержать: 'код' (Пациента/ Врача), 'ФИО'(Пациента/Врача); 'тип'('Пациент'/'Врач'); 'приемов' (число приемов у пациента/врача). Упорядочить по типам, затем по ФИО.
РЕШЕНИЕ:
SELECT Пациент.КодПациента AS Код,
Пациент.ФИОПациента AS ФИО,
'Пациент' AS Тип,
COUNT (Прием.КодВрача) AS Прием
FROM Пациент INNER JOIN Прием
ON (Пациент.КодПациента=Прием.КодПациента)
WHERE Прием.ДатаВремя=2005
GROUP BY Прием.КодПациента
UNION
SELECT Врач.КодВрача AS Код,
Врач.ФИОВрача AS ФИО,
'Врач' AS Тип,
COUNT (Прием.КодПациента) AS Прием
FROM Врач INNER JOIN Прием
ON (Врач.КодВрача=Прием.КодВрача)
WHERE Прием.ДатаВремя=2005
GROUP BY Прием.КодВрача
ORDER BY Тип
ORDER BY ФИО;
Билет 21.
5. ???
Пациент (КодПац, ФИОПац, Катег, ДатаР)
Врач (КодВр, ФИОВр, Спец, Стаж)
Прием (КодПац, КодВр, Дата/Время, Кабинет)
Извлечь коды и ФИО пациентов категории «пенсионер», которые в текущем году либо не посещали врача-терапевта, либо посещали неоднократно врача-окулиста. Результат упорядочить по ФИОПац.
РЕШЕНИЕ:
Select КодПац, ФИОПац
From Пациент
Where Категория = «пенсионер»
And КодПац In (Select КодПац
From Прием
Where Дата/Время = 2005)
And КодПац In (Select КодПац
From прием
Where КодВр In (Select КодВр
From Врач
Where Спец<> «терапевт»
And Спец <> «окулист»)
Or КодВр= ???
(SELECT КодВр
From Прием
Group By КодПац, КодВр
Having count (КодВр)>1
And КодВр=???
(Select КодВр
FROM Врач
WHERE спец=’окулист’));
Сортировка????
Билет 22.
5. Пац (Код, ФИО, Катег, ДатР)
Врач (Код, ФИО, Спец, Стаж)
Прием (КодПац, КодВр, Дата Вр, Катег)
О враче-терапевте с загруженностью в январе месяце>0,75: код, ФИО, количество принятых пациентов. Загруженность=число/200. Не учитывать пациентов ???категории “сторонный”???(прочитала как смогла) . упорядочить по ФИО.
РЕШЕНИЕ:
SELECT Врач.КодВр, Вр. ФИОВр,
COUNT (Прием. КодПац)
FROM Врач INNER JOIN Прием
ON Врач.КодВр=Прием.КодВр
WHERE Врач.Спец=терапевт
and Прием. ДатаВр=’янв’
and Прием.КодПац not in
(SELECT КодПац
FROM Пац
WHERE Кат=’стор’)
GROUP BY Прием.КодВр
HAVING (count (Прием. КодПац)/200)>0.75
Билет 23