我需要使用嵌套查询列出规定青霉素的最年轻病人的名字和姓氏。以下是我有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”的完整语法。 –