COUNT个问题

时间:2019-07-11 01:10:52

标签: sql ms-access

我有两个表,PATIENT和VISIT。一个以PatientID为主要关键字,另一个以VisitID为主要关键字。我需要选择已经去过两次以上医院的患者的名字和姓氏。

我尝试过DISTINCT,嵌套where子句,INNER JOIN等。

SELECT FirstName
     , LastName
     , PatientID
     , COUNT(*) AS total_visits 
  FROM VISIT 
 WHERE total_visits > 2; 

它应该只显示在VISIT表中出现两次以上的患者的名字和姓氏,但是无论我如何重新排列代码都行不通。

2 个答案:

答案 0 :(得分:0)

您需要public class A { @Column @Where(clause = "A.needs_B = 'true'") B b; } GROUP BY

HAVING

答案 1 :(得分:0)

根据戈登的回答和您的评论,我认为VISIT中的PatientID是PATIENT表的键。因此,您将需要使用“ INNER JOIN”。所以您的查询看起来像这样:

SELECT FirstName, LastName, v.PatientID, COUNT(*) AS total_visits
FROM VISIT v
INNER JOIN PATIENT p ON p.PatientID = v.PatientID
GROUP BY FirstName, LastName, v.PatientID
HAVING COUNT(*) > 2;

请注意,Access中的AFAIK不能在HAVING子句中使用别名。您需要按原样重复COUNT(*)。