В моей таблице посещений у каждого Доктора есть пациенты. Я пытался сделать это с делом, но это не работает.
SELECT DoctorID CASE WHEN COUNT(DISTINCT PatientID) = 0 THEN 'There is no doctor who hasn't admitted any patients. ' ELSE 'There is no doctor who hasn't admitted any patients. FROM Visits GROUP BY DoctorID;
Я думаю, что вы хотите not exists. Если врач не видел пациентов, я бы не ожидал, что этот врач окажется за столом под названием visits. Итак:
not exists
visits
select d.* from doctors d where not exists (select 1 from visits v where v.doctorid = d.doctorid);
Будет ли работать ниже?
SELECT DoctorID, count(DISTINCT PatientID) FROM VISITS GROUP BY DoctorID HAVING COUNT(DISTINCT PatientID) = 0