2015-10-16 46 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

我真的很喜歡桌子別名,我一定會看看,謝謝你的幫助! –

相關問題