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



最近通过这里的所有帮助,我已经能够获得我想要工作的所有查询,但就完成所需的时间而言,其中一个查询的效果不如我希望的那么好。 ms-access 最多可能需要 15 分钟才能完成和解冻。 当我对少量数据(大约 150 条记录)进行查询时,可能需要 1-2 分钟,但数据集越大,花费的时间就越长。
我试图做的是采取两个查询,一个查询包含所有结果(大约 18,000 条记录),将其与另一个只有所有"通过"的人进行比较,并找到那些只"失败"的人。 这是一位成员向我展示的,我使用了。

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

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

我非常感谢所有的帮助,如果没有这个论坛的帮助,我永远无法完成任何这项工作。 谢谢。

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

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上添加索引,并在All_Pass表中Date列。

最新更新