Ответ на ваш вопрос зависит от того, как вы хотите действовать, если любое из ваших требований не будет выполнено:
- Что должно произойти, если
EmployeeID
равно , а не найдены в таблице tblEmployees
? - Что должно произойти, если в таблице
HoursWorkedRecords
найдены дубликаты ?
Если ответ на эти вопросы заключается в простом игнорировании записей, которыене соответствует критериям, тогда это может быть достигнуто с помощью относительно простого INSERT
запроса:
insert into hoursworkedrecords
select
i.employeeid, i.workdate, i.hoursworked
from
(tblimport i inner join tblemployees e on i.employeeid = e.employeeid)
left join hoursworkedrecords h on i.employeeid = h.employeeid and i.workdate = h.workdate
where
h.employeeid is null
Здесь inner join
в таблице tblEmployees
гарантирует, что EmployeeID
является действительным, иleft join
в таблице hoursworkedrecords
в сочетании с критериями is null
гарантирует, что записи для этого сотрудника на эту дату не существует.
Если, однако, пользователь должен быть предупрежден об этих проблемах,Вы должны использовать обратный запрос, указанный выше, чтобы выбрать недействительные записи, которые пользователь должен просмотреть, прежде чем продолжить.