Как выбрать врачей, которые не назначали пациентов? - PullRequest
0 голосов
/ 22 января 2020

В моей базе данных нет ни одного врача, который бы не видел ни одного пациента, поэтому я хотел бы, чтобы в первой колонке был текст «Нет врача, который бы не принимал пациентов».

   SELECT d.FistName + ' ' + d.LastName as 'Doctors who has not admitted any patients      
      COUNT(w.PatientID) as [Patient count] 
      FROM Doctors d 
      left join Visits v on d.DoctorID=w.DoctorID 
     GROUP BY d.FistName + ' ' + d.LastName HAVING COUNT(DISTINCT PatientID) = 0;

1 Ответ

0 голосов
/ 22 января 2020

Не уверен, что вы спрашиваете, но если вы хотите найти врачей, у которых нет пациентов, вот как я бы написал ваш запрос:

select
<some stuff>
from
doctors d
left join visits v
 on v.doctorid = v.doctorid
where
 v.doctorid is null

Это даст вам все записи ваших врачей таблица, в которой нет совпадений в таблице посещений, нет необходимости в агрегировании. Это довольно стандартный шаблон. Вы также можете сделать запрос типа not exists.

...