2016-10-05 102 views
1

這是一張圖片,解釋我擁有什麼以及我在找什麼。 Tables and data describing the question.在Access 2010中,如何編寫更新查詢以「填空」?

這最初看起來像一個非常簡單的更新查詢,但它已經證明我真的不明白查詢是如何工作的。有人可以解釋一下我需要將tblImport.Addtl_Initiator中的所有數據移動到tblEntries.Initiator下的相應空白處,並將tblImport.Addtl_Date_Initiated中的數據移動到tblEntries.Date_Initiated下的相應空白處。基本上只是將數據移動到左側的一列,但在另一個表中。

附加信息:在圖片中未顯示的每個表格上都有一個唯一的ID字段。

回答

0

用的Nz試試吧。

UPDATE tblentries 
INNER JOIN tblimport 
ON tblentries.eid = tblimport.eid 
AND tblentries.initiator = tblimport.initiator 
AND tblentries.date_initiated = tblimport.date_initiated 
SET tblentries.initiator = nz(tblimport.initiator, tblimport.addtl_initiator), 
tblentries.date_initiated = nz(tblimport.date_initiated, import.addtl_date_initiated) 

這個鏈接也可能會有所幫助:coalesce alternative in Access SQL

+0

支持我的錯誤「在查詢定義的SELECT列表中造成別名‘發起’循環引用」。 – UnseenSpecter

+0

現在嘗試。更新了以下別名:AS – kbball

+0

太棒了!這正確地查詢數據到三個領域。我不完全確定爲什麼它的工作原理與以前的代碼不同......現在我該如何更新tblEntries以匹配查詢? – UnseenSpecter

0

使用IsNull獲得非空值:

SELECT 
    IsNull(Initiator, Addtl_Inititator) AS Initiator, 
    IsNull(Date_Initiated, Addtl_Date_Initiated) AS Date_Initiated, 
FROM 
    tblImport 
+0

ISNULL不被訪問2010 – kbball

相關問題