I have this query which works fine in SQL Server, but not in Access, and I’m having trouble converting it. I’ve always heard that JET is missing some TSQL features, and I suppose complex joins is one of them.
SELECT C.[Position], TT.[Description] as TrainingType, T.ProgramTitle, T.ProgramSubTitle, T.ProgramCode, ET.CompletedDate
from HR_Curriculum C
LEFT JOIN HR_Trainings T ON C.TrainingID = T.TrainingID
LEFT JOIN HR_TrainingTypes TT ON T.TrainingTypeID = TT.TrainingTypeID
LEFT JOIN HR_EmployeeTrainings ET ON C.TrainingID = ET.TrainingID
AND (ET.AvantiRecID IS NULL OR ET.AvantiRecID = '637')
where ( c.[Position] = 'Customer Service Representative'
OR C.[Position] = 'All Employees')
order by [Position], Description, ProgramTitle
I tried putting the extra join clause down in the WHERE clause, but for some reason this does not yield the proper count of records.
Check that your table alias are delacred with ‘as’. Access doesn’t like [tablename] [alias], instead try [tablename] as [alias]. I know the complex left joins shouldn’t be a problem, but Access might be choking an the alias delcarations if it’s returning some join error. I would also try quering out the restriction on the ET table, and then joining that to the larger query. I’ve noticed that trying to put restrictions on records involved in left or right joins will often not produce the correct records as Access will limit the set after the join.