私は 2 つのテーブルを持ってMain
いDetails
ます。それらは 1 対多の関係にあり、1 つの行が にMain
複数の行を持つ可能性がありますDetails
。
Main
からのすべての情報に加えて、関連する行にDetails
一連のコードのいずれかが含まれているかどうかを返すクエリを作成しようとしています。もちろん、これは 1 対多であるため、複数のコードが存在する可能性がありDetails
ます。また、行を二重にカウントしたくありません。私もそれを数回繰り返す必要があります。
私が欲しいのは次のようなものです:
SELECT m.*, CASE WHEN x.ID IS NOT NULL THEN 1 ELSE 0 END AS Codes1, CASE WHEN y.ID IS NOT NULL THEN 1 ELSE 0 END AS Codes2
FROM [Main] m
LEFT JOIN EXISTS(SELECT d.ID FROM [Details] d WHERE m.ID = d.ID AND d.Code IN (<<Codes1>>)) x
LEFT JOIN EXISTS(SELECT d.ID FROM [Details] d WHERE m.ID = d.ID AND d.Code IN (<<Codes2>>)) y
これを行う方法はありますか?(これは明らかなはずのことのようで、n 度まで複雑にしていますが、本当に空白を描いています...