-1

I have 2 tables TestFname & TestLname. Each have some entries with first name only, some with last name only and some with both first and last names. Each Person has unique Number, so if Jack Smith occurs as "Jack" in TestFname and "Smith" in TestLname, Jack's number is "2" in both tables.

I want query result to show all unique Persons only once, and in case of Jack Smith, combine "Jack" from TestFname with "Smith" from TestLname in one record "Jack Smith" in query result.

    SELECT IIf([TestFname.F_name] Is Null,[TestLname.F_Name],[TestFname.F_Name]) AS FFName,IIf([TestFname.Number] Is Null, [TestLname.Number],[TestFname.Number]) AS Nnumber
FROM TestFname 
LEFT JOIN TestLname 
ON TestFname.Number = TestLname.Number
UNION 
SELECT  IIf([TestFname.L_name] Is Null,[TestLname.L_Name],[TestFname.L_Name]) AS LLName,IIf([TestFname.Number] Is Null, [TestLname.Number],[TestFname.Number]) AS Nnumber
FROM TestFname 
RIGHT JOIN TestLname 
ON TestFname.Number = TestLname.Number;

This gives only 2 columns output: FFName and Nnumber (no LLname), and Jack Smith occurs in 2 records rather than in 1 record with both FFName and LLname in separate columns.

sleibo
  • 11
  • 3

1 Answers1

0

Need all 3 calcs in both SELECT statements.

SELECT IIf([TestFname.Number] Is Null, [TestLname.Number], [TestFname.Number]) AS Nnumber, 
   IIf([TestFname.F_name] Is Null,[TestLname.F_Name],[TestFname.F_Name]) AS FFName, 
   IIf([TestFname.L_name] Is Null,[TestLname.L_Name],[TestFname.L_Name]) AS LLName 
   FROM TestFname 
   LEFT JOIN TestLname ON TestFname.Number = TestLname.Number
UNION 
SELECT IIf([TestFname.Number] Is Null, [TestLname.Number], [TestFname.Number]), 
   IIf([TestFname.F_name] Is Null, [TestLname.F_Name], [TestFname.F_Name]), 
   IIf([TestFname.L_name] Is Null,[TestLname.L_Name],[TestFname.L_Name]) 
   FROM TestFname 
   RIGHT JOIN TestLname ON TestFname.Number = TestLname.Number;
June7
  • 19,874
  • 8
  • 24
  • 34