SELECT TimeSheets.EmployeeID, Month(WorkDate) as MonthPay , YEAR(WorkDate) AS YearPay, SUM(TimeSheets.HoursWorked * WorkerRates.HourlyRate) AS LaborDollars FROM TimeSheets JOIN WorkerRates ON WorkerRates.EmployeeID = TimeSheets.EmployeeID WHERE WorkerRates.RateEffectiveDate = (SELECT MAX(RateEffectiveDate) FROM WorkerRates RatesTemp WHERE RateEffectiveDate <= WorkDate AND RateAddedDate <= WorkDate AND RatesTemp.EmployeeID = TimeSheets.EmployeeID) GROUP BY TimeSheets.EmployeeID, Month(WorkDate),YEAR(WorkDate)Obviously, you could use a CTE as well.