2017-01-05 40 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