我有如下的关系在我的数据库: 让所有不符合项在链路表中MS-访问
有一个公司不同的培训,他们被重复像一年2-3次。
现在我想要获取tbl_employee条目与报表无关的所有tbl_events条目并将它们显示在报表中。
到目前为止,我试着做一个查询给我所有雇员与他们已经访问ev_name。
qry_visited:
SELECT tbl_employee.em_number
,tbl_event.ID AS ev_visited_id
FROM (
tbl_event INNER JOIN tbl_date ON tbl_event.[ID] = tbl_date.[da_f_event]
)
INNER JOIN (
tbl_employee INNER JOIN tbl_training ON tbl_employee.[ID] = tbl_training.[tr_f_employee]
) ON tbl_date.[ID] = tbl_training.[tr_f_date];
然后我写了第二个查询: qry_unvisited
SELECT qry_visited.em_number
,tbl_event.ev_name
,qry_visited.ev_visited_id
FROM qry_visited
RIGHT JOIN tbl_event ON qry_visited.ev_visited_id = tbl_event.ID
WHERE (((qry_visited.ev_visited_id) IS NULL));
这些查询只一起工作,如果我限制了第一个只有一个员工。我宁愿为所有员工使用em_number和ev_name记录集。
我还研究了几天的工作(并解决了左外部,右外部和全外部加入),但没有人做到这一点。
感谢您的帮助!
编辑1
例子: 有3名员工(EMP1,EMP2,epm3)和3个活动(EV1,EV2,EV3)
比方说
- EMP1访问ev1和ev2
- emp2 visited ev2 and ev3
- emp3 visited到目前为止无
我希望我的结果是这样的:
| employee | not visited events |
emp1 ev3
emp2 ev1
emp3 ev1
emp3 ev2
emp3 ev3
首先:感谢您的努力。不幸的是,我不需要一般“未使用”的事件,而是每个员工未使用的事件。我会相应地编辑这个问题,使其更加清晰... – Argee
@Argee更新。 –
主席先生,你是一位救星!非常感谢:) – Argee