【发布时间】:2020-05-09 01:41:14
【问题描述】:
在我的数据库中没有没有看过任何病人的医生,所以我想在第一列下有一个文本“没有没有收治任何病人的医生”。
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;
【问题讨论】:
-
你最好按
d.DoctorID分组。否则两个同名医生将显示为一个。 -
我在这里没有看到任何问题?
-
我真的建议不要使用需要分隔标识的列名;当然
Doctors who has not admitted any patients是一个过长的名字。至于你有什么,有什么问题? (此外,您的代码中有一个不幸的印刷错误FirstName) -
@Larnu 起初我没有看到印刷错误,但现在我无法取消它。哈哈
-
这个问题不好,1.请提供样本数据。 2.您确实了解您的查询有很多错误。 @Larnu 已经指出了其中的一些,同样在计数之前你错过了一个逗号
,你以错误的方式使用别名(两个表和三个别名......)我从你之前的问题中看到你没有被警告关于问题的质量。欢迎来到 Stack Overflow,请为我们提供更好的问题,提供更多示例数据和预期结果数据。干杯!