最近通过这里的所有帮助,我已经能够得到我想要工作的所有查询,但是就完成所花费的时间而言,我所希望的工作并不像我希望的那样好。 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的限制?我在同一个数据集上使用的所有其他查询都需要几秒钟。
我非常感谢所有的帮助,如果没有这个论坛的帮助,我将无法完成任何这些任务。谢谢。
答案 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
表中的Date
和All_Pass
列添加索引。