У меня есть две таблицы из следующих двух запросов:
SELECT t3.PatientID, SUM(t3.Fee) as total FROM
(SELECT t1.TestID, t2.PatientID, t1.Fee FROM
(SELECT Test.TestID, Test.Fee FROM MedicalTest AS Test) AS t1,
(SELECT T.TestID, T.PatientID FROM Take AS T) AS t2
WHERE t1.TestID = t2.TestID
ORDER BY t2.PatientID) AS t3
GROUP BY t3.PatientID
ORDER BY total DESC;
Что дает мне таблицу идентификаторов пациентов и сколько они потратили на тесты, часть таблицы выглядит так:
PATIENTID TOTAL
----------- ---------------------------------
99642131 550.00
99631255 440.00
99665378 430.00
99627956 310.00
99657423 280.00
99641125 260.00
99630025 230.00
99648682 230.00
Мой другой запрос:
SELECT DISTINCT D.PatientID FROM Diagnose AS D
WHERE D.PhysicianID IN (
SELECT P.PhysicianID FROM Physician AS P
WHERE P.HName = 'Specific Hospital'
AND P.DName = 'Intensive Care Unit');
Возвращает мне список идентификаторов пациентов, которые находятся под опекой конкретного врача. Часть таблицы:
PATIENTID
-----------
99615376
99618797
99620783
99620882
99621221
Я пытаюсь создать результирующую таблицу, которая содержит идентификаторы пациентов из второй таблицы, а также сколько они потратили на медицинские анализы из первой таблицы. Некоторые пациенты из второй таблицы не проходили никаких тестов, в этом случае я хотел бы, чтобы таблица просто дала 0 для общего столбца, однако моя попытка объединения таблиц дает мне только пациентов, которые проходили тесты:
SELECT t5.PatientID, t4.total FROM
(SELECT t3.PatientID, SUM(t3.Fee) as total FROM
(SELECT t1.TestID, t2.PatientID, t1.Fee FROM
(SELECT Test.TestID, Test.Fee FROM MedicalTest AS Test) AS t1,
(SELECT T.TestID, T.PatientID FROM Take AS T) AS t2
WHERE t1.TestID = t2.TestID
ORDER BY t2.PatientID) AS t3
GROUP BY t3.PatientID
ORDER BY total DESC) AS t4,
(SELECT DISTINCT D.PatientID FROM Diagnose AS D
WHERE D.PhysicianID IN (
SELECT P.PhysicianID FROM Physician AS P
WHERE P.HName = 'Specific Hospital'
AND P.DName = 'Intensive Care Unit')) AS t5
WHERE t5.PatientID = t4.PatientID;
Таблица результатов:
PATIENTID TOTAL
----------- ---------------------------------
99642131 550.00
99665378 430.00
99627956 310.00
Как можно включить пациентов из таблицы 2, которые не проходили тесты, и ввести 0 в их общий столбец?