【发布时间】:2017-08-26 02:23:16
【问题描述】:
我有一个主表 tblBudget,其中包含像
这样的条目ProjID Type Budget Active
101 ROM 100 No
101 PLE 110 No
101 DLE 120 Yes
102 ROM 200 No
102 PLE 210 Yes
每个月我都会得到一个 excel,我将其导入并存储到一个临时表 tblMonthlyBudget 中,其中包含诸如
之类的条目ProjID Type Budget Active
101 EAC 100 Yes
102 DLE 110 Yes
我编写了一个更新查询,尝试将 tblBudget 中的所有 Active 条目更新为“否”,以便插入最活跃的新记录。我的查询是
UPDATE tblBudget
INNER JOIN tblMonthlyBudget
ON tblBudget.ProjectId = tblMonthlyBudget.ProjectID
SET tblBudget.Active = false
但是我得到了错误
操作必须使用可更新的查询
即使查询似乎在数据表和设计视图中正确显示。我只有在执行查询时才得到它。我尝试搜索错误并尝试了各种组合但没有成功。欢迎任何替代方法。 我怀疑这是因为临时表包含多个记录。
【问题讨论】:
-
通常在两个源表上(无查询),这样的更新应该可以工作。这两者必须有一些结构性的东西。 临时表是什么意思?
-
tblBudget有主键吗?如果是,是什么? -
@Andre 谢谢你的帮助。我基于此找出了问题,我试图根据带有交叉表查询的连接来更新表。当我在临时表中插入交叉表查询的结果时,问题就解决了。