Из того, что я могу извлечь из вашего вопроса, кажется, что вы на правильном пути с вашим запросом left join
, однако, поскольку ваш запрос qAllDatesAllEmp
содержит основные данные, вы должны вывести данные из этого запроса для записи, для которых соответствующие значения равны нулю в вашем запросе qDailyWorkEmp
.
В вашем запросе также есть опечатка в этой строке:
qAllDatesAllEmp.WhatDate = qDailyWorkEmp.DailyDate
Как вы указали в своем вопросе, запрос qAllDatesAllEmp
содержит поля:
Query1: qAllDatesAllEmp contains {WorkDate; empID; empName; CityBased}
WhatDate
не является одним из этих полей.
Вам также необходимо присоединить поле empID
в обоих запросах, чтобы сравнивать поле даты на основе на сотрудника , а не сравнивать каждую дату с датами для всех сотрудников - следовательно, ваши критерии объединения должны быть:
qAllDatesAllEmp LEFT JOIN qDailyWorkEmp ON
qAllDatesAllEmp.WorkDate = qDailyWorkEmp.DailyDate AND
qAllDatesAllEmp.empID = qDailyWorkEmp.empID
С учетом предоставленной информации я мог бы предложить следующее:
SELECT
qAllDatesAllEmp.empID,
qAllDatesAllEmp.empName,
qAllDatesAllEmp.CityBased
qAllDatesAllEmp.WorkDate as MissingDate
FROM
qAllDatesAllEmp LEFT JOIN qDailyWorkEmp ON
qAllDatesAllEmp.WorkDate = qDailyWorkEmp.DailyDate AND
qAllDatesAllEmp.empID = qDailyWorkEmp.empID
WHERE
qDailyWorkEmp.DailyDate IS NULL