【发布时间】:2013-10-16 20:17:07
【问题描述】:
我很难弄清楚如何执行此更新查询。基本上我需要更新一个名为 tblOpenJobs 的表。它需要使用具有 Max Install 日期的 dbo_WorkOrders 表进行更新。但是这两个表之间没有直接关系,您需要在它们之间有 dbo_premise 表。这是我的查询,我做错了什么?
UPDATE tblOpenJobs
INNER JOIN (dbo_Premise INNER JOIN dbo_WorkOrders w (WHERE w.InstallDate IN
(SELECT MAX(InstallDate) FROM dbo_WorkOrders WHERE dbo_WorkOrders.PremiseKey = w.PremiseKey))
ON (dbo_Premise.PremiseKey = w.PremiseKey)
ON tblOpenJobs.ServiceOrderNum = dbo_Premise.AccountNumber
SET tblOpenJobs.InstallerID = w.InstallerID,
tblOpenJobs.InstallDate= w.InstallDate,
tblOpenJobs.New_Serial_num= w.NewSerial,
tblOpenJobs.Old_Reading= w.OldRead;
【问题讨论】:
-
将你的 SQL 粘贴到 Vim 中表明你在 "
INNER JOIN (dbo_Premise" 处有一个左括号,而右括号)是不匹配的。但是,当您运行该查询时,Access 会告诉您什么?有错误信息吗? Access 是否抱怨 “操作必须使用可更新的查询” 还是其他错误?