テーブルAのすべてのインスタンスを返し、テーブルBの特定の結果セットに一致するクエリを持っていますが、テーブルBからの一致、私はまだテーブルAの結果が必要ですが、テーブルBの結果はnull値です。たとえば :あるテーブルに存在し、別のテーブルに存在しない結果を返す
Table A
Person1 | Date1 | Info1
Person2 | Date2 | Info2
Person4 | Date4 | Info4
Table B
Person2 | Details2
Person3 | Details3
Person5 | Details5
Desired result
Person1 | Date1 | Info1 | NULL
Person2 | Date2 | Info2 | Details2
Person4 | Date4 | Info4 | NULL
は現在、私のレポートでは、私は必要なもののほとんどを行いますが、それは、そのようなPERSON1やPerson4などのインスタンスのいずれかを戻すために失敗しました。テーブル2に一致する結果がないインスタンスは戻されません。これはwhere句のためであると想定しています。 LEFT JOINを使ってみましたが、明らかにこれはうまくいきませんでした。私はUNIONを使ってもしようとしましたが、無駄です。
助けていただけたら幸いです!
SELECT t1.[Person1]
, t1.[forename]
, t1.[surname]
,CONVERT(VARCHAR(10), t1.[aDate], 103) + ' ' + convert(VARCHAR(8), t1.[aDate], 14) Admit
,CONVERT(VARCHAR(10), t1.[disDate], 103) + ' ' + convert(VARCHAR(8), t1.[disDate], 14) Discharge
, t1.[wa]
, t1.[sp]
, t2.title
,CONVERT(VARCHAR(10), t2.DocDate, 103) + ' ' + convert(VARCHAR(8), t2.DocDate, 14) DocDate
FROM [DB1].[dbo].[table1] t1
JOIN [DB2].[dbo].[table2] t2
ON t1. Person1 = t2. Person2
WHERE CAST(t2.DocDate AS DATE) BETWEEN CAST(t1.aDate AS DATE) and
CAST(t1.disDate AS DATE)
AND t2.title like '%ischarg%'
ORDER BY t1.Person1 ASC, t1.aDate DESC
!ありがとう – peterbonar