我有一個查詢,可以找回任何具有任何課程的任何人的列表。我需要列出誰擁有所有課程並且沒有過期。我不想看到課程列表只是列出了所有5門課程的人員名單。我正在使用MS Access 2010 SQL。在滿足ALL條件的一個字段上使用多個條件進行查詢
SELECT tblEmployees.LName, tblEmployees.FName, tblEmployees.Trade,
tblEmployees.Title, tblTrainingHistory.Date, tblCourses.CourseName,
IIf(IsNull(CourseLength),"",DateAdd("m",[CourseLength],[Date])) AS ExpiryDate
FROM tblEmployees LEFT JOIN (tblCourses RIGHT JOIN tblTrainingHistory ON
tblCourses.CourseID = tblTrainingHistory.CourseID)
ON tblEmployees.EmpID = tblTrainingHistory.EmpID
WHERE
(((tblCourses.CourseName)
In ("Confined Space","Manwatch","Ventis MX4","First Aid","CPR"))
AND ((IIf(IsNull([CourseLength]),Now(),DateAdd("m",[CourseLength],[Date])))>Now())
AND ((tblEmployees.Active)=True))
GROUP BY tblEmployees.LName, tblEmployees.FName, tblEmployees.Trade,
tblEmployees.Title, tblTrainingHistory.Date, tblCourses.CourseName,
tblEmployees.EmpID, tblCourses.CourseLength ;
如果你想提高你獲得幫助的機會,它通常是一個好主意,提供一個SQL小提琴 –
什麼是SQL小提琴? – Stacey
當涉及到SO和SQL查詢問題時,一個非常有用的工具:http://sqlfiddle.com/ –