2017-01-05 43 views
0

基本上我使用MS Access 2013从API中导入分配给特定组的所有活动工作项,并将数据选择到2个新表中(请求& Request_Tasks)。SQL查询停止工作,无法找出原因

然后我有一个表格来源于查询,从2个表中选择特定的字段。

直到昨天它工作没有问题,没有任何改变。

所有数据都出现在2个表中,因此从API导入工作正常。

对于从2个表中选择数据的查询(已使用正确的数据填充),查询仅从Requests表中返回空白字段的数据,而不是Request_Tasks中的数据。

奇怪的是,在28个活动工作项目中,它返回24个正确,最后4个有问题。

添加到组中的每个新任务都有问题。

查询如下。

SELECT 
Request_Tasks.RQTASK_Number, 
Request_Tasks.Request_Number, 
Requests.Task, Requests.Entity, 
Request_Tasks.Description, 
Request_Tasks.Request_Status, 
Requests.Requested_for_date, 
Request_Tasks.Work_On_Date, 
Request_Tasks.Estimated_Time, 
Request_Tasks.Actual_Time_Analysis, 
Request_Tasks.Offers_Built, 
Request_Tasks.Number_of_links_Opened, 
Request_Tasks.Number_of_Links_Extended, 
Request_Tasks.Number_Of_links_closed, 
Request_Tasks.Build_Allocated_to, 
Request_Tasks.Buld_Review_Allocated_to, 
Request_Tasks.Keying_Allocated_to, 
Request_Tasks.Keying_Approval_allocated_to, 
Request_Tasks.Actual_Build_Time, 
Request_Tasks.Actual_Stakeholder_Support, 
Request_Tasks.Task_Completed_Date 

FROM Request_Tasks 

RIGHT JOIN Requests 
    ON Request_Tasks.Request_Number = Requests.Request_Number 

WHERE (((Request_Tasks.Task_Completed_Date)>=Date() 
Or (Request_Tasks.Task_Completed_Date) Is Null) 
AND ((Requests.Task)<>"7" 
And (Requests.Task)<>"8" And (Requests.Task)<>"9")) 
OR (((Request_Tasks.Task_Completed_Date)>=Date() 
Or (Request_Tasks.Task_Completed_Date) Is Null) 
AND ((Requests.Task)<>"7" 
And (Requests.Task)<>"8" 
And (Requests.Task)<>"9")) 

ORDER BY Request_Tasks.Work_On_Date Is Null DESC , Request_Tasks.Work_On_Date, Requests.Entity Is Null DESC , Requests.Task; 

任何帮助将是伟大的。

谢谢。

回答

0

查询结果正在使用RIGHT JOIN,这意味着即使Request_tasks表中没有对应的条目,也会始终报告Requests表中的行。

完整的例子就是在这里http://www.w3schools.com/Sql/sql_join_right.asp

在你的情况下,最有可能的somechange可能数据加载/ API期间发生并没有被填充Request_tasks表。这就是您查看该表中字段的空白数据的原因。

解决方案

  • Request_tasks表手动检查数据错误的4条记录。
  • 确保表request_number中的密钥匹配,包括数据类型和任何前导空格/不可打印字符(如果它们是字符串类型的数据)以查找错误记录。

查询看起来不错,它更多的是基于问题陈述的数据问题。

+0

感谢您的回复。不幸的是,这并没有帮助。 API导入已经工作,表中的所有数据都是应该的。它就好像查询不能识别连接一样。创建一个新的查询给出了相同的结果。看起来1条记录有问题,之后的每条记录都是相同的,但我不知道它可能是什么 – Lee

+0

对于来自Request_Tasks的那4个请求,可能找不到字段的值Request_Number在'Requests'表中 –

+0

你在使用表中的自动编号吗?如果是这样,什么数据类型是自动编号? – Velid