Year()
是一个函数,它返回一个变体子类型整数,它对应于您给该函数的日期值的日历年。
在您的情况下,您似乎有一个名为Year
. 所以也许“缺少的参数”是Year()
函数的预期日期参数。
Year
您可以通过括在方括号中来避免混淆数据库引擎。括号表示引擎Year
是对象(字段)名称而不是函数。
update [Original Table] as a inner join Updates as b on a.ID = b.ID
set a.[Variable 1] = b.[Variable 1]
where [Year] = "2000";
只要有可能,最好使用不与保留字冲突的名称。这在您的情况下可能不切实际......但如果您能做到,您将减少您将遭受的 Access 开发头痛的数量。:-)
有关“命名挑战”的更多信息,请参阅Access 中的问题名称和保留字。
抱歉,尽管存在 WHERE 子句问题,但我忽略了查询可以工作的点。
我看不到任何应该触发数据库引擎投诉的 SQL 的其余部分。我假设您直接在 Access 中测试了该语句,并且没有出错。
如果 SAS 和 Access 之间的交互有什么特殊的原因导致这种情况,也许您可以使用保存的 Access 查询作为解决方法。获取该 SQL 并将其保存为命名查询qrySasTest
,在您的 Access 数据库中。然后尝试qrySasTest
从 SAS 端执行。