Ms access 查找没有培训记录的员工

Ms access 查找没有培训记录的员工,ms-access,Ms Access,我有一个Access培训数据库,它按课程和主题记录培训。拆分的原因是一个会话可能涉及多个主题。我试图做一个查询,找出哪些员工缺少某个给定的主题。我可以毫无疑问地得到一个查询,其中列出了每个员工参加的培训,但反过来却不起作用。数据模型如下所示: 您可以使用联接将员工ID与主题关联起来,然后使用not exists操作符查找缺少主题的员工: SELECT * FROM tblEmployees e WHERE NOT EXISTS (SELECT * FR

我有一个Access培训数据库,它按课程和主题记录培训。拆分的原因是一个会话可能涉及多个主题。我试图做一个查询,找出哪些员工缺少某个给定的主题。我可以毫无疑问地得到一个查询,其中列出了每个员工参加的培训,但反过来却不起作用。数据模型如下所示:


您可以使用联接将员工ID与主题关联起来,然后使用
not exists
操作符查找缺少主题的员工:

SELECT *
FROM   tblEmployees e
WHERE  NOT EXISTS (SELECT *
                   FROM   tblTrainingTopics tt
                   JOIN   tblTrainingSessions ts ON tt.sessionid = ts.id
                   JOIN   tblTrainingLog tl ON tl.session = ts.id
                   WHERE  tl.eenumber = e.eeid AND tt.topic = 'some_topic')

您是否尝试了Access中的查找不匹配查询向导?您已经非常接近了。这为一个主题提供了正确的报告。我正试图得到一份显示所有主题的报告。换句话说,人员A缺少主题X,人员B缺少主题Y将“some_topic”替换为“*”以查看一份报告中的所有主题