SQL Where Not Exists 包含多个参数
SQL Where Not Exists Containing Multiple Arguments
我正在尝试编写一个查询来检索仅存在于一个 table 中的数据,我还有其他需要解决的参数我已经研究了语法但我不明白为什么我的其他参数没有被使用。抱歉,如果这个 post 看起来相当缺乏经验,我才使用 SQL 一个月。
/*List the patient id, primary diagnosis and attending physician id for current admissions (no discharge date) in ICU
who haven't had an encounter with their attending physician.*/
PRINT 'GROUP 5 SELECT A';
PRINT '';
SELECT Admissions.PatientID, Admissions.PrimaryDiagnosis, Admissions.AttendingPhysicianID
FROM Admissions
WHERE NOT EXISTS
(SELECT *
FROM Encounters
WHERE (Admissions.PatientID = Encounters.PatientID)) And (Admissions.DischargeDate is NULL) And (Admissions.NursingUnitID = 'ICU');
根据您的描述,我猜您需要对患者和医生进行匹配。像这样:
SELECT a.PatientID, a.PrimaryDiagnosis, a.AttendingPhysicianID
FROM Admissions a
WHERE NOT EXISTS (SELECT 1
FROM Encounters e
WHERE a.PatientID = e.PatientID AND
a.AttendingPhysicianID = e.PhysicianID
) And
a.DischargeDate is NULL And a.NursingUnitID = 'ICU';
请注意,table 别名使查询更易于编写和阅读。
我正在尝试编写一个查询来检索仅存在于一个 table 中的数据,我还有其他需要解决的参数我已经研究了语法但我不明白为什么我的其他参数没有被使用。抱歉,如果这个 post 看起来相当缺乏经验,我才使用 SQL 一个月。
/*List the patient id, primary diagnosis and attending physician id for current admissions (no discharge date) in ICU
who haven't had an encounter with their attending physician.*/
PRINT 'GROUP 5 SELECT A';
PRINT '';
SELECT Admissions.PatientID, Admissions.PrimaryDiagnosis, Admissions.AttendingPhysicianID
FROM Admissions
WHERE NOT EXISTS
(SELECT *
FROM Encounters
WHERE (Admissions.PatientID = Encounters.PatientID)) And (Admissions.DischargeDate is NULL) And (Admissions.NursingUnitID = 'ICU');
根据您的描述,我猜您需要对患者和医生进行匹配。像这样:
SELECT a.PatientID, a.PrimaryDiagnosis, a.AttendingPhysicianID
FROM Admissions a
WHERE NOT EXISTS (SELECT 1
FROM Encounters e
WHERE a.PatientID = e.PatientID AND
a.AttendingPhysicianID = e.PhysicianID
) And
a.DischargeDate is NULL And a.NursingUnitID = 'ICU';
请注意,table 别名使查询更易于编写和阅读。