SELECT DCount("[EmployeeID]","[Employees]","[EmployeeID]<=" & e.EmployeeID) AS EmployeeNumber, e.FullName AS EmployeeName, e.JobTitle, e.TrainingID, MAX(IIf(rr.RateID=1,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate1_Percentage, MAX(IIf(rr.RateID=2,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate2_Percentage, MAX(IIf(rr.RateID=3,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate3_Percentage, MAX(IIf(rr.RateID=4,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate4_Percentage, MAX(IIf(rr.RateID=5,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate5_Percentage, MAX(IIf(rr.RateID=6,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate6_Percentage, MAX(IIf(rr.RateID=7,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate7_Percentage, MAX(IIf(rr.RateID=8,ROUND(rr.RateResponse/r.Rate*100,0),Null)) AS Rate8_Percentage
FROM (Employees AS e INNER JOIN RateResponse AS rr ON e.EmployeeID = rr.EmployeeID) INNER JOIN Rates AS r ON rr.RateID = r.RateID
GROUP BY e.FullName, e.EmployeeID, e.JobTitle, e.TrainingID
ORDER BY DCount("[EmployeeID]","[Employees]","[EmployeeID]<=" & e.EmployeeID);