Ich habe 3 Tabellen. An einem Tisch sitzen alle Leute, [Pat]
jeweils mit einer eindeutigen [PatId]
. Die zweite Tabelle enthält alle Informationen über die Versicherungsgesellschaft, [Ins]
jeweils mit einer eindeutigen [InsId]
. Die dritte Tabelle enthält die Versicherungsdaten des Patienten, [PatIns]
. Im [PatIns]
Tabelle, einige Patienten (auch [PatId]
) haben eine Zweit- oder Drittversicherung und es wird angegeben in [InsType]
als 1, 2, oder 3. Ich brauche eine SQL-Abfrage, die nicht nur die 3 Tabellen verbindet, sondern auch die Daten zurückgibt, wenn ein Patient eine Zweit- oder Drittversicherung hat. Bis jetzt habe ich:
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;
Das Problem ist, dass nur Patienten mit 3 Versicherungen zurückgegeben werden. Ich möchte alle Patienten und Nullwerte für die Tabellen INS2 und/oder INS3 zurückgeben, wenn der Patient nur eine Versicherung hat. Haben Sie eine Idee, wie man das machen kann?