У меня есть две таблицы, подобные следующей: первая таблица хранит список и используется в качестве основного списка
Таблица A
ImageId ImageName
---------------------
101 X-Ray
102 MRI
103 CTSCAN
Моя вторая таблица показывает отчеты по больницам для вышеупомянутого:
Таблица B
HospitalId Month ImageId NumberOfVisits
-------------------------------------------
111 1 101 20
111 1 102 30
222 1 101 21
Теперь я хотел бы создать запрос, подобный следующему. Я хочу показать все из таблицы A в таблице B, даже если запись из таблицы A не существует в таблице B
Таблица C
HospitalId Month ImageName NumberOfVisits
----------------------------------------------
111 1 X-Ray 20
111 1 MRI 30
111 1 CTSCAN 0
222 1 X-Ray 21
222 1 MRI 0
222 1 CTSCAN 0
Я пытаюсь создать отчет или таблицу для суммирования количества услуг в больнице за каждый месяц. Я хочу показать 0, если в течение месяца в больнице нет отчетов.
Я попытался сделать это с помощью левого соединения, но это не помогло.
Я попытался объединить запрос, присоединяясь, но он не работает
SELECT
B.Hospitalid, A.ImageName, B.Month, B.NumberOfVisits
FROM
dbo.TableA A
INNER JOIN
dbo.TableB B ON A.ImageId = B.ImageId
UNION ALL
SELECT
B.Hospitalid, A.ImageName, B.Month, B.NumberOfVisits
FROM
dbo.TableA A
INNER JOIN
dbo.TableB B ON A.ImageId = B.ImageId
WHERE
A.ImageId & B.HospitalId NOT IN (SELECT A.ImageId&B.HospitalId
FROM dbo.TableA A
INNER JOIN dbo.TableB B ON A.ImageId = B.ImageId)
Я хочу показать все из таблицы A в таблице B, даже если запись из таблицы A не существует в таблице B
HospitalId Month ImageName NumberOfVisits
---------------------------------------------
111 1 X-Ray 20
111 1 MRI 30
111 1 CTSCAN 0
222 1 X-Ray 21
222 1 MRI 0
222 1 CTSCAN 0