При выполнении коррелированных подзапросов используйте псевдонимы, чтобы различать источники с одинаковыми именами между внешним запросом и подзапросом.В настоящее время вы пытаетесь использовать очень таблицу, которую вы намереваетесь создать внутри запроса, когда фактически хотите указать на внешнее поле запроса: [Daily Timesheet].TimesheetEntryID
.
Следовательно, просто настройте запрос с помощьюсоответствующие псевдонимы.Ниже показаны ссылки на все подзапросы с sub , присоединенными к соответствующей букве во внешнем запросе.Кроме того, добавлено дополнительное условие для совпадения с тем же EmployeeID :
SELECT e.EmployeeName, d.TimesheetEntryID,
(SELECT SUM(sub_d.VacationHoursUsed - sub_d.VacationHours)
FROM [Daily Timesheet] sub_d
WHERE sub_d.TimesheetEntryID <= d.TimesheetEntryID
AND sub_d.EmployeeID = d.EmployeeID) AS VacationHoursAvailable,
(SELECT SUM(sub_d.BankedHoursUsed - sub_d.BankedHours)
FROM [Daily Timesheet] sub_d
WHERE sub_d.TimesheetEntryID <= d.TimesheetEntryID
AND sub_d.EmployeeID = d.EmployeeID) AS BankedHoursAvailable,
(SELECT SUM(sub_d.PersonalHoursUsed - sub_d.PersonalHours)
FROM [Daily Timesheet] sub_d
WHERE sub_d.TimesheetEntryID <= d.TimesheetEntryID
AND sub_d.EmployeeID = d.EmployeeID) AS PersonalHoursAvailable
INTO [Hours Accumulation Temporary]
FROM [Employee Master] e
INNER JOIN [Daily Timesheet] d ON e.EmployeeID = d.EmployeeID
ORDER BY e.EmployeeID, d.TimesheetEntryID