у меня 3 таблицы. На одном столе есть все люди, [Pat]
, каждый с уникальным [PatId]
. Вторая таблица содержит всю информацию страховой компании, [Ins]
, каждая с уникальным [InsId]
. Третья таблица содержит информацию о страховании пациента, [PatIns]
. В таблице [PatIns]
некоторые пациенты (также [PatId]
) имеют вторичную или третью страховку, и она обозначена в [InsType]
как 1, 2 или 3. Мне нужен SQL-запрос, который не только объединит 3 таблицы, но также вернуть данные, когда пациент имеет вторичную или третью страховку. Пока что у меня есть:
SELECT *
FROM [XEREX_TEST].[dbo].[xrxPat],
[XEREX_TEST].[dbo].[xrxIns],
[XEREX_TEST].[dbo].[xrxPatIns]
[XEREX_TEST].[dbo].[xrxPatIns] AS INS2,
[XEREX_TEST].[dbo].[xrxPatIns] AS INS3
WHERE [xrxPat].[PatId]=[xrxPatIns].[PatId]
AND [xrxPatIns].[PatId] = INS2.[PatId]
AND [xrxPatIns].[PatId] = INS3.[PatId]
AND [xrxIns].[RecNo]=[xrxPatIns].[InsId]
AND [xrxPatIns].[InsType]=1
AND INS2.[InsType]=2
AND INS3.[InsType]=3;
Проблема в том, что возвращаются только пациенты с 3 страховыми полисами. Я хотел бы вернуть всех пациентов и нулевые значения для таблиц INS2 и / или INS3, если у пациента есть только 1 страховка.
есть идеи как это сделать?