Sql 两个表之间的子查询
我有两张桌子Sql 两个表之间的子查询,sql,sql-server,Sql,Sql Server,我有两张桌子 患者表格 预约表格 我无法设计以下问题的查询 查找copay最高的患者的所有预约(让子查询为您查找患者)您需要使用MAX()聚合函数。我假设某个地方有一个copay列,因此子查询如下所示: SELECT patient_id FROM patient WHERE copay = (SELECT MAX(copay) FROM patient); SELECT a.* FROM appointment a JOIN patient p ON p.patient_id = a.pat
患者
表格预约
表格SELECT patient_id
FROM patient
WHERE copay = (SELECT MAX(copay) FROM patient);
SELECT a.*
FROM appointment a
JOIN patient p ON p.patient_id = a.patient_id AND p.copay = (SELECT MAX(copay) FROM patient);
然后,您可以将其与您的预约表合并,以获得该患者的预约。您甚至可以将此子查询作为ON子句的一部分,如下所示:
SELECT patient_id
FROM patient
WHERE copay = (SELECT MAX(copay) FROM patient);
SELECT a.*
FROM appointment a
JOIN patient p ON p.patient_id = a.patient_id AND p.copay = (SELECT MAX(copay) FROM patient);
要查找一名患者的结果,请执行以下操作:
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;
对于具有相同最高copay的多个患者,您可以将
top 1
更改为top 1带领带
您解决过这个问题吗?