2015-11-26 1 views
0

Вот три таблицы я работаю с:нужно SQL заявление, чтобы возвращать записи, которые возвращают Null

enter image description here

Это SQL заявление я работаю с:

SELECT DISTINCT Employees.Corps_ID, Employees.Last_Name, Employees.First_Name, Employees.Home_Phone, Employees.Mobile_Phone 
FROM Shifts INNER JOIN (Employees INNER JOIN Employees_Shifts ON Employees.Employee_ID = Employees_Shifts.Employee_ID) ON Shifts.Shift_ID = Employees_Shifts.Shift_ID 
WHERE Shifts.Start_Date_Time Between #11/1/2015# And #12/1/2015# And Employees_Shifts.Employee_ID = NULL ; 

Что Мне действительно нужен этот запрос, чтобы проверить все Сдвиги по указанному диапазону дат и вернуть только те записи Employee, которые не совпадают.

Я попытался сменить оператор INNER на LEFT в пару мест, но Access просто продолжает жаловаться и не будет запускать запрос. Мне определенно нужна помощь с этим. Пожалуйста, порекомендуйте.

ответ

1
SELECT Employees.Corps_ID, Employees.Last_Name, Employees.First_Name, Employees.Home_Phone, Employees.Mobile_Phone 
FROM Employees 
WHERE NOT EXISTS(
    SELECT * from Employees_Shifts 
    JOIN Shifts ON Shifts.Shift_ID = Employees_Shifts.Shift_ID 
    WHERE Shifts.Start_Date_Time Between #11/1/2015# And #12/1/2015# 
    AND Employees_Shifts.Employee_ID = Employees.Employee_ID 
    ) 

Btw DISTINCT часто указывает на некоторые проблемы с схемой или запросом, всегда спрашивайте, зачем вам это нужно.

Смежные вопросы