更新查询不更新完整字段

时间:2016-02-15 20:03:25

标签: sql ms-access

我有两个表,实际使用和预算。我需要用我的每月Budget.goals更新我的[实际使用]。目标。我有一个更新查询:

UPDATE [Actual Use]
INNER JOIN Budget ON [Actual Use].Property_ID = Budget.Property_ID
SET
    [Actual Use].Goal = [Budget].Goal
WHERE
    [Actual Use].Date = [Budget].Date

此查询更新了我的实际使用表,但仅更新一个月。 2016年1月1日。实际使用和预算都有一个日期字段,所有日期都是在每个月的第一天输入所以2016年1月1日,2016年1月1日等...为什么我的更新只在一个月而不是每个月工作两个表上的Property_ID和月份是否相同?

编辑 Acutal Use Table按此顺序包含以下字段 Property_Id, Date, Use, Goal和预算表有Property_ID, Date, Goal

1 个答案:

答案 0 :(得分:0)

我同意Olivier的评论。您需要加入ID和日期。

根据表键的不同,上面列出的查询可能会产生一对多或多对多的结果,其中程序不知道要分配的目标。我认为Where子句可能会遇到很多情况,但在我看来,可能会产生一些奇怪的行为。

可能的解决方案:

#contentwrapper {
    width: calc(100% - 70px);
}

另一方面,数据似乎有点重复?假设表[实际使用]中没有“目标”,您仍然可以通过以下方式引用数据:

UPDATE [Actual Use]
INNER JOIN Budget ON [Actual Use].Property_ID = Budget.Property_ID 
AND [Actual Use].Date = Budget.Date
SET
    [Actual Use].Goal = [Budget].Goal