我需要使用嵌套查詢列出規定青黴素的最年輕病人的名字和姓氏。以下是我有DB2 SQL嵌套查詢
SELECT P.FIRST_NAME, P.LAST_NAME, MIN(P.AGE) AS AGE
FROM PATIENT AS P
WHERE P.PATIENT_NO IN(
SELECT PRE.PATIENT_NO
FROM PRESCRIPTION AS PRE
WHERE MEDICATION_CODE IN (
SELECT M.MEDICATION_CODE
FROM MEDICATION AS M
WHERE MEDICATION_DESC = 'Penicillin'))
GROUP BY P.FIRST_NAME, P.LAST_NAME
HAVING MIN(P.AGE);
結果回來與所規定的青黴素,而不僅僅是最年輕的兩個人。
我懷疑你可以用它做一個連接,發表您的表架構 – Mihai
查詢是找到每個誰曾經被青黴素規定最低年齡的人。我假設每個病人只有一個年齡;) – swasheck
我不認爲你的「HAVING」正在完成你想要的東西......但是,除了這個,我很驚訝你沒有收到錯誤信息, HAVING MIN(P.AGE);',因爲它打算給出一個布爾結果(帶有真/假結果的邏輯短語)。例如,HAVING MIN(P.AGE)<20'將是「HAVING」的完整語法。 –