查找没有培训记录的员工

时间:2017-12-06 20:46:13

标签: ms-access

我有一个Access培训数据库,可以按会话和主题记录培训。拆分的原因是一个会话可能涵盖多个主题。我试图提出一个查询,以解决哪些员工错过了某个特定主题。我没有问题,查询列出了每位员工参加的培训,但反之则无效。数据模型如下所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用联接将员工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')