我有一个Access 2003数据库,其查询是一个表与另一个查询的左外连接。如果我没有对最终查询进行排序,我得到了42条记录。如果我按照2个连接字段对最终查询进行排序,那么我得到了43条记录。没有对查询进行任何其他更改。
为了验证这一点,我接受了查询,复制了它,应用了排序而没有进行其他更改,并且记录计数增加了一个。困惑,我将结果复制到Excel,排序,并逐行比较。我发现一条记录是重复的(所有字段完全相同),其中源表和查询中实际上没有重复记录。
我认为这是一个错误,我知道Access中有一些错误,但是之前有没有人听说过这种行为?
答案 0 :(得分:3)
您可能有一个损坏的索引。可能值得采取备份,然后压缩和修复数据库,这应该重建索引。
答案 1 :(得分:1)
我在Access 2003上遇到了类似的问题,其中我有重复记录,其中1个字段是自动编号,应该增加两倍。 我的疑问是:
SELECT qry_Tasks_with_Names.*, Location.Location, WorkRequests.Element, WorkRequests.Site_ID
FROM ((WorkRequests LEFT JOIN Location ON WorkRequests.Site_ID=Location.LocationID) INNER JOIN qry_Tasks_with_Names_by_Individual ON WorkRequests.Work_Request_ID=qry_Tasks_with_Names_by_Individual.Work_Request_ID) INNER JOIN qry_Tasks_with_Names ON WorkRequests.Work_Request_ID=qry_Tasks_with_Names.Work_Request_ID
WHERE (WorkRequests.Site_ID=Forms!TaskList!comboFilter_by_Site Or Forms!TaskList!comboFilter_by_Site Is Null) And (qry_Tasks_with_Names.Assigned_to_User_ID=forms!taskList!comboFilter_by_Person Or forms!taskList!comboFilter_by_Person Is Null) And (qry_Tasks_with_Names.Assigned_to_Team_ID=forms!taskList!comboFilter_by_Team Or forms!taskList!comboFilter_by_Team Is Null) And qry_Tasks_with_Names.Assigned_to_User_ID>0
ORDER BY qry_Tasks_with_Names.SLA_Due;
以上内容最初是由查询设计人员创建的,但它在这个级别上却让人感到困惑,而且我似乎也是如此。
一旦我在qry_Tasks_with_Names_by_Individual上移除了内部联接,一切都很好。 不知道为什么,但希望如果他们遇到同样的问题,这可能会让别人流泪。