I'm looking to join multiple tables into one report and need help with my "INNER JOIN" and "JOIN" approach. I'm looking for a result similar to using the "UNION" call but I would like the results from each table to display in separate columns rather than all in one column. Here are the 3 queries I would like to join into one report with (ideally) 4 distinct columns (Job Title, Skills, Abilities, Work Activities)
SELECT [Job Titles].[Job Title], Abilities.Ability
FROM (Departments INNER JOIN [Job Titles] ON Departments.DepartmentID = [Job Titles].[Department]) INNER JOIN (Abilities INNER JOIN [Department/Ability] ON Abilities.AbilityID = [Department/Ability].Ability) ON (Departments.DepartmentID = [Department/Ability].Department) AND (Departments.DepartmentID = [Department/Ability].Department)
WHERE ((([Job Titles].[Job Title])="President"));
SELECT [Job Titles].[Job Title], Skills.Skill
FROM Skills INNER JOIN ((Departments INNER JOIN [Job Titles] ON Departments.DepartmentID = [Job Titles].[Department]) INNER JOIN [Department/Skills] ON Departments.DepartmentID = [Department/Skills].Department) ON Skills.SkillID = [Department/Skills].Skills
WHERE ((([Job Titles].[Job Title])="President"));
SELECT [Job Titles].[Job Title], [Work Activities].[Work Activities]
FROM Employees INNER JOIN ([Work Activities] INNER JOIN (([Job Titles] INNER JOIN [Employee/JobTitle] ON [Job Titles].JobTitleID = [Employee/JobTitle].[Job Title]) INNER JOIN [JobTitles/WorkActivities] ON [Job Titles].JobTitleID = [JobTitles/WorkActivities].[Job Title]) ON [Work Activities].[Work ActivitiesID] = [JobTitles/WorkActivities].[Work Activity]) ON Employees.WorkerID = [Employee/JobTitle].Employee
GROUP BY [Job Titles].[Job Title], [Work Activities].[Work Activities]
HAVING ((([Job Titles].[Job Title])="President"));
Here are photos of the three tables I'll like to combine into one report/query.
Anyone can help? I'm learning SQL on my own and cannot figure this one out. Thanks.
I doubt this will give you the exact results you want, but the syntax is similar to how I tackle your stated scenario.
SELECT [Job Titles].[Job Title], Null As Skill, Abilities.Ability, Null As [Work Activities]
FROM (Departments INNER JOIN [Job Titles] ON Departments.DepartmentID = [Job Titles].[Department]) INNER JOIN (Abilities INNER JOIN [Department/Ability] ON Abilities.AbilityID = [Department/Ability].Ability) ON (Departments.DepartmentID = [Department/Ability].Department) AND (Departments.DepartmentID = [Department/Ability].Department)
WHERE ((([Job Titles].[Job Title])="President"))
UNION
SELECT [Job Titles].[Job Title], Skills.Skill, Null Null
FROM Skills INNER JOIN ((Departments INNER JOIN [Job Titles] ON Departments.DepartmentID = [Job Titles].[Department]) INNER JOIN [Department/Skills] ON Departments.DepartmentID = [Department/Skills].Department) ON Skills.SkillID = [Department/Skills].Skills
WHERE ((([Job Titles].[Job Title])="President"))
UNION
SELECT [Job Titles].[Job Title], Null, Null, [Work Activities].[Work Activities]
FROM Employees INNER JOIN ([Work Activities] INNER JOIN (([Job Titles] INNER JOIN [Employee/JobTitle] ON [Job Titles].JobTitleID = [Employee/JobTitle].[Job Title]) INNER JOIN [JobTitles/WorkActivities] ON [Job Titles].JobTitleID = [JobTitles/WorkActivities].[Job Title]) ON [Work Activities].[Work ActivitiesID] = [JobTitles/WorkActivities].[Work Activity]) ON Employees.WorkerID = [Employee/JobTitle].Employee
GROUP BY [Job Titles].[Job Title], [Work Activities].[Work Activities]
HAVING ((([Job Titles].[Job Title])="President"));