2015-10-16 76 views
0

我想写一个查询来检索只存在于一个表中的数据,我还有其他需要解决的参数我研究了这个语法,但我不明白为什么我的其他参数参数没有被使用。对不起,如果这篇文章看起来相当缺乏经验,我只用了一个月的SQL。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'); 
+0

我怀疑'(Admissions.DischargeDate是否为NULL)'和'(Admissions.NursingUnitID ='ICU')'应该在子查询内,但我'不确定,因为很难弄清楚什么是逻辑应该是完全的。 – GolezTrol

+0

我如何编写我的语法以将它们放在子选择之外? –

+0

删除最后一个'''并放在'(Admissions.PatientID = Encounters.PatientID)'之后。 – GolezTrol

回答

1

根据您的描述,我猜测您需要匹配病人和医生。事情是这样的:

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'; 

注意,表的别名使查询更容易编写和阅读。

+0

我真的很喜欢桌子别名,我一定会看看,谢谢你的帮助! –

相关问题