FROM Patients, Pati_Drug, Drugs, Detachment;
WHERE;
Pati_Drug.id_drug = Drugs.id_drug AND Drugs.название = ThisForm.Combo1.Value AND;
Pati_Drug.id_patient = Patients.id_patient AND Detachment.id_detach = Patients.Отделение;
Результат запроса (Бензилпенициллина натриевая соль):
Запрос №8
Найти фамилии врачей, имеющих в заданной (выбор) палате, заданного (выбор) отделения.
Текст запроса:
SELECT Doctors.Фамилия, Doctors.Имя, Doctors.Отчество, Doctors.Телефон, Count(Doctors.Фамилия) as "количество_больных";
FROM Patients, Doctors, Doct_pati, Detachment;
WHERE;
Patients.Отделение = Detachment.id_detach AND Detachment.название = ThisForm.Combo1.Value AND;
Doct_pati.id_patient = Patients.id_patient AND Doct_pati.id_doctor = Doctors.id_doctor AND;
Patients.Палата = VAL(ThisForm.Combo2.Value);
GROUP BY Doctors.Фамилия
Результат запроса (кардиология, 101):
Запрос №9
Найти фамилии врачей, имеющих более 5 пациентов в палатах заданного (выбор) отделения.
Текст запроса:
SELECT Count(Doctors.Фамилия) as "количество", Doctors.Фамилия, Doctors.Имя, Doctors.Отчество, Doctors.Телефон;
FROM Patients, Doctors, Doct_pati, Detachment;
WHERE;
Patients.Отделение = Detachment.id_detach AND Detachment.название = ThisForm.Combo1.Value AND;
Doct_pati.id_patient = Patients.id_patient AND Doct_pati.id_doctor = Doctors.id_doctor;
GROUP BY Doctors.Фамилия;
HAVING количество > 5
Результат запроса (инфекционное):
Запрос №10
Найти фамилии врачей, имеющих по крайней мере одного пациента в каждой из палат заданного (выбор) отделения.
Текст запроса:
select distinct Patients.Палата;
from Patients, Detachment;
where Detachment.название = ThisForm.Combo1.Value and Detachment.id_detach = Patients.Отделение;
into cursor cur_palata
select *;
from Doctors;
into cursor cur_doct
select count(cur_palata.Палата) as "Количество";
from cur_palata;
into cursor cur_palcount
do while !eof('cur_doct')
x = 0
do while !eof('cur_palata')
select count(Patients.Фамилия) as "Количество";
from Patients, Detachment, Doctors, Doct_pati;
where Patients.Палата = cur_palata.Палата and Detachment.название = ThisForm.Combo1.Value and;
Detachment.id_detach = Patients.Отделение and Doctors.Фамилия = cur_doct.Фамилия and;
Doct_pati.id_doctor = Doctors.id_doctor and Doct_pati.id_patient = Patients.id_patient;
into cursor cur_count
if cur_count.Количество >= 1
x = x + 1
endi
skip 1 in 'cur_palata'
enddo
if x == cur_palcount.Количество
messagebox(cur_doct.Фамилия)
endi
goto 1 in 'cur_palata'
skip 1 in 'cur_doct'
enddo
Результат запроса (Кардиология):
Запрос №11
Найти фамилии врачей, лечащих пациента по заданной (выбор) фамилии
Текст запроса:
SELECT Doctors.Фамилия, Doctors.Имя, Doctors.Отчество, Doctors.Телефон;
FROM Doctors, Patients, Doct_pati;
WHERE;
Patients.Фамилия = ThisForm.Combo1.Value AND Patients.id_patient = Doct_pati.id_patient AND;
Doct_pati.id_doctor = Doctors.id_doctor
Результат запроса (Сергеев):
Запрос №12
Найти фамилии врачей, лечащих по крайней мере одного пациента, родившегося после заданного года рождения (ввод с клавиатуры произвольного года рождения).
Текст запроса:
SELECT Doctors.Фамилия, Doctors.Имя, Doctors.Отчество, Doctors.Телефон, Count(Doctors.Фамилия) as "количество_больных";
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.