TSQL – Für jede ähnliche Aussage

Ich möchte eine SQL machen Für jede – ähnliche Aussage und ich kann nicht meinen Kopf um ihn herum.

Wenn mein TABLE_A so aussieht:

[dbo].[TABLE_A]( [EmpID] [INT], [FName] [varchar](50) NULL, [LName] [varchar](50) NULL ) 

… und mein TABLE_B sieht so aus:

 [dbo].[TABLE_B]( [EmployeeActivity] [varchar](50) NULL, [EmpID] [INT] ) 

Kann jemand mir helfen, eine Abfrage zu schreiben, um so etwas zu tun:

 FOR EACH DISTINCT [EmployeeActivity] RETURN [TABLE_B].[EmployeeActivity], [TABLE_A].[FName], [TABLE_A].[LName], [TABLE_A].[EmpID], CASE WHEN ([TABLE_B].[EmployeeActivity] IS NULL) THEN ('NO') ELSE 'YES' END 

Ergebnisse sollten wie folgt aussehen:

 FireDrill12, Bill, Jones, 342,YES FireDrill13, Bill, Jones, 342,NO FireDrill14, Bill, Jones, 342,YES FireDrill12, Smith, Sue, 253,NO FireDrill13, Smith, Sue, 253,NO FireDrill14, Smith, Sue, 253,YES 

Ich kann mir nicht den Kopf machen.

Danke für jede Hilfe,

-Allen

Eine andere Version mit inner Begleitung, aber die korrekte Version mit left Join ist wie von @Blam gezeigt

 SELECT A.*, CASE WHEN B.EmployeeActivity IS NULL THEN 'No' ELSE 'Yes' END FROM [dbo].[TABLE_A] A INNER JOIN [dbo].[TABLE_B] B ON (A.EmpID = B.EmpID) UNION SELECT A.*, 'No' FROM [dbo].[TABLE_A] A WHERE A.EmpID NOT IN (SELECT B.EmpID FROM [dbo].[TABLE_B] B) 
 SELECT DISTINCT [TABLE_A].[EmpID], [TABLE_A].[FName], [TABLE_A].[LName] , CASE WHEN [TABLE_B].[EmployeeActivity] IS NULL THEN 'No' ELSE 'Yes' END AS [EmployeeActivity] FROM [TABLE_A] LEFT JOIN [TABLE_B] ON [TABLE_B].[EmpID] = [TABLE_A].[EmpID] 

SQL ist eine Set-basierte Sprache sowieso, also macht es schon dein "für jeden", also in der Theorie könntest du einen CROSS JOIN machen, um jede Kombination zu bekommen, mit einer korrelierten Abfrage, um deinen Scheck zu machen, also vielleicht auch so was:

 SELECT DISTINCT b.EmployeeActivity, a.FName, a.LName, a.EmpId, CASE WHEN EXISTS (SELECT 1 FROM [TABLE_B] c WHERE c.[EmployeeActivity] = b.EmployeeActivity AND c.EmpId = a.EmpId) THEN 'YES' ELSE 'NO' END FROM Table_b AS b CROSS JOIN Table_a AS a ON a.EmpId = b.EmpId