MS-Access-使用连接另一个表的结果更新列

时间:2019-02-28 09:05:44

标签: ms-access join sql-update ms-access-2013 calculated-columns

我需要通过将Amt_fcy列与相应的Fx_rates.Rate乘以数据上的两个表来更新Amounts.Amt_lcy。

*Amounts*

Data        |    Amt_fcy    |  Amt_lcy  
31/03/2018            10              
30/04/2018            15    


*Fx_rates*

Data        |  Rate  
31/03/2018      2.5
30/04/2018      3.1

我的查询如下:

更新金额设置Amt_lcy =(从左侧的金额中选择Amounts.Amt_fcy * Fx_rates.Rate加入Amounts.Data = Fx_rates.Data上的Fx_rates

我必须犯一些基本错误,因为我收到“操作必须使用可更新查询”错误。 任何帮助都将受到欢迎

1 个答案:

答案 0 :(得分:0)

这是一个常见问题。

在Access中的更新查询中,任何查询中的所有列(包括子查询但不包括EXISTS子句)都必须可更新。

由于您正在子查询中计算Amounts.Amt_fcy*Fx_rates.Rate,并且该查询不可更新,因此查询失败。

此查询可以被重写以在主查询中执行该计算,并且同时运行速度更快:

Update Amounts 
Left join Fx_rates on Amounts.Data=Fx_rates.Data
set Amt_lcy =  Amounts.Amt_fcy*Fx_rates.Rate