我有两张桌子
Patient
表Appointment
表我无法为以下问题设计查询
查找具有最高自付额的患者的所有约会(让子查询为您找到患者)
答案 0 :(得分:1)
您需要使用MAX()聚合函数。我会假设某个地方有一个copay列,所以子查询看起来像这样:
SELECT patient_id
FROM patient
WHERE copay = (SELECT MAX(copay) FROM patient);
然后,您可以将其与您的约会表一起加入,以获得该患者的预约。您甚至可以将此子查询作为ON子句的一部分,如下所示:
SELECT a.*
FROM appointment a
JOIN patient p ON p.patient_id = a.patient_id AND p.copay = (SELECT MAX(copay) FROM patient);
答案 1 :(得分:0)
找一位患者的结果:
select a.*
from (select top 1 p.*
from patient p
order by p.copay desc
) p join
appointment a
on p.patient_id = a.patient_id;
对于具有相同最高自付额的多个患者,您可以将top 1
更改为top 1 with ties
。