在 Access 2010 中,如何将更新查询写入 "fill in the blanks"?
In Access 2010, how do I write an update query to "fill in the blanks"?
这是一张图片,解释了我拥有的东西和我正在寻找的东西。
Tables and data describing the question.
这最初看起来像是一个非常简单的更新查询,但事实证明我真的不明白查询是如何工作的。有人可以解释一下 SQL 我需要将所有数据从 tblImport.Addtl_Initiator 移动到 tblEntries.Initiator 下的相应空白,并将数据从 tblImport.Addtl_Date_Initiated 移动到 tblEntries.Date_Initiated?本质上只是将数据移动到左侧的一列,但在不同的 table.
附加信息:图中未显示的每个 table 都有一个唯一的 ID 字段。
使用IsNull
获取非空值:
SELECT
IsNull(Initiator, Addtl_Inititator) AS Initiator,
IsNull(Date_Initiated, Addtl_Date_Initiated) AS Date_Initiated,
FROM
tblImport
用 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)
这个 link 也可能有帮助:coalesce alternative in Access SQL
这是一张图片,解释了我拥有的东西和我正在寻找的东西。 Tables and data describing the question.
这最初看起来像是一个非常简单的更新查询,但事实证明我真的不明白查询是如何工作的。有人可以解释一下 SQL 我需要将所有数据从 tblImport.Addtl_Initiator 移动到 tblEntries.Initiator 下的相应空白,并将数据从 tblImport.Addtl_Date_Initiated 移动到 tblEntries.Date_Initiated?本质上只是将数据移动到左侧的一列,但在不同的 table.
附加信息:图中未显示的每个 table 都有一个唯一的 ID 字段。
使用IsNull
获取非空值:
SELECT
IsNull(Initiator, Addtl_Inititator) AS Initiator,
IsNull(Date_Initiated, Addtl_Date_Initiated) AS Date_Initiated,
FROM
tblImport
用 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)
这个 link 也可能有帮助:coalesce alternative in Access SQL