我对我的 SQL 很生疏,所以这可能不是那么复杂,但我似乎无法破解它。
我有一个包含两个表的数据库 - 一个包含患者的详细信息,另一个包含每个患者的就诊情况。 Patient_ID 是患者的唯一标识符,用于 Access 表中,我正在尝试提取不同患者的数量和他们的 Access 总数(即患者 A 在 2018 年 Access 了 3 次)
我正在尝试获取每年 Access 过中心的不同个体患者的总数( Access 表中的字段),并从患者表中查看有关患者的信息(性别、国家等)。
我已经尝试了几个计数和不同的函数,但无法正常工作。下面是最后的尝试之一,但在这种情况下,distinct 函数实际上并没有显示不同的值(我做错了吗?)。它确实适用于其他查询...任何帮助将不胜感激。
SELECT DISTINCT Visits.Patient_ID, Patient.Gender, Patient.Village, Visits.Months_Of_Visit, Visits.Year
FROM Visits
INNER JOIN Patient ON Patient.Patient_ID=Visits.Patient_ID
WHERE Year='2018';
预期结果:
每个月和每年的唯一患者 ID、患者性别、患者村。
最佳答案
如果你想要每个病人 Access 每个村庄/月/年的次数:
SELECT Count(*) AS CountVisits, Visits.Patient_ID, Gender, Village, Months_Of_Visit, [Year]
FROM Visits
INNER JOIN Patient ON Patient.Patient_ID=Visits.Patient_ID
GROUP BY Patient_ID, Gender, Village, Months_Of_Visit, [Year];
如果您想要每个村庄/月/年的 DISTINCT 患者数量:
查询 1:
SELECT DISTINCT Visits.Patient_ID, Gender, Village, Months_Of_Visit, [Year]
FROM Visits
INNER JOIN Patient ON Patient.Patient_ID=Visits.Patient_ID;
查询2:
SELECT Count(*) AS CountPerVillage, Village, Months_Of_Visit, [Year]
FROM Query1 GROUP BY Village, Months_Of_Visit, [Year];
一应俱全:
SELECT Count(*) AS CountPerVillage, Village, Months_Of_Visit, [Year]
FROM (SELECT DISTINCT Visits.Patient_ID, Village, Months_Of_Visit, [Year]
FROM Visits INNER JOIN Patient ON Patient.Patient_ID=Visits.Patient_ID) AS Query1
GROUP BY Village, Months_Of_Visit, [Year];
由于 Year 是一个保留字(它是一个内部函数),所以用 [ ] 括起来或在字段引用中包含表名前缀。
关于css - 从 Access 数据库中按年获取不同的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54082320/