查询两个其他查询的结果以获得ms-access中的第三个结果

时间:2017-03-23 13:04:00

标签: ms-access

最近通过这里的所有帮助,我已经能够得到我想要工作的所有查询,但是就完成所花费的时间而言,我所希望的工作并不像我希望的那样好。 ms-access最多可能需要15分钟才能完成和解冻。当我对少量数据(150个左右的记录)进行查询时,可能需要1-2分钟,但数据集越大,所需的时间就越长。
我要做的是接受两个查询,一个具有每个结果(大约18,000条记录)的查询,将它与另一个只有所有人通过的查询进行比较#34;并找到那些只有'#34;失败的"。这是一位同事向我展示并使用过的东西。

选择* FROM All_ESD_Results_Date_Changed WHERE((([EmpID]& [Date])Not In(SELECT EmpID& Date FROM All_Pass)));

有没有办法加快速度,或者只是ms-access的限制?我在同一个数据集上使用的所有其他查询都需要几秒钟。

我非常感谢所有的帮助,如果没有这个论坛的帮助,我将无法完成任何这些任务。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试将两个表连接在一起以实现相同的逻辑。像这样:

SELECT t1.*
FROM All_ESD_Results_Date_Changed t1
LEFT JOIN All_Pass t2
    ON t1.[EmpID] = t2.[EmpID] AND
       t1.[Date]  = t2.[Date]
WHERE t2.[EmpID] IS NULL

如果这没有帮助,那么接下来要采取的步骤是在EmpID表中的DateAll_Pass列添加索引。