Sql 访问查询:不包括指定的表达式

Sql 访问查询:不包括指定的表达式,sql,ms-access,Sql,Ms Access,我需要更新Table1.date中的sum(员工。[每月预算])只考虑在Table1.date之后有招聘日期的员工 我正在尝试使用此查询: UPDATE Table1 SET Budget = (Sum(Employee.[Monthly budget])) WHERE Table1.Date > Employee.[Date of recruitment]; 但我得到了这个错误: 编辑 我正在使用以下代码: UPDATE Table1 SET Budget = (SELE

我需要更新
Table1.date
中的
sum(员工。[每月预算])
只考虑在
Table1.date
之后有招聘日期的员工

我正在尝试使用此查询:

UPDATE Table1 SET Budget = (Sum(Employee.[Monthly budget])) WHERE Table1.Date > Employee.[Date of recruitment];
但我得到了这个错误:

编辑

我正在使用以下代码:

UPDATE Table1
    SET Budget = (SELECT Sum(Employee.[Monthly budget]) FROM Employee WHERE Table1.Date > Employee.[Date of recruitment]);

但是我得到了错误消息
操作必须使用可更新的查询

我想您需要一个子查询,也许:

UPDATE Table1
    SET Budget = (SELECT Sum(Employee.[Monthly budget]) FROM Employee WHERE Table1.Date > Employee.[Date of recruitment]);

我没有看到任何“从员工中选择”:

UPDATE Table1 
SET Budget = 
SELECT Sum(Employee.[Monthly budget]) 
FROM Employee 
WHERE Table1.[Date] > Employee.[Date of recruitment];

如果您有“操作必须使用可更新查询”问题,只需将子查询替换为
DSUM()

它可能比较慢,但应该可以完成这项工作

UPDATE Table1 
SET Budget = DSUM("Monthly Budget", "Employees", "[Date of recruitement] < " & [Date])
更新表1
设置预算=DSUM(“月度预算”、“员工”、“招聘日期”<”和[日期])
(写得很快,但你明白了)


顺便说一下,使用日期作为字段名是一个非常糟糕的主意

谢谢,但它说,员工的
(Sum(Employee.[Monthly budget])中有一个语法错误(缺少运算符),表1.Date>Employee.[Date of recruption])
@Stefano。子查询应该有
SELECT
(现在是这样)。再次抱歉,如果我放入SELECT,我会得到“操作必须使用可更新查询”谢谢,但我得到“操作必须使用可更新查询”:(日期是Access中的保留字。需要放在方括号之间。调整了我的代码。避免使用保留字。