更新表中的多个字段,其中一个字段取决于另一个字段

时间:2014-07-10 18:12:52

标签: sql ms-access sql-update

我在从表中更新3个值时遇到问题。

我使用以下代码:

UPDATE tblOperation 
SET  
tblOperation.DateDifference = DateDiff("d",[tblOperation].[Date],[tblOperation].[FinalDate]), 
tblOperation.Tax = tblOperation.Value*tblOperation.Percentage/3000*tblOperation.DateDifference, 
tblOperation.FinalValue = tblOperation.Value-tblOperation.Tax;

问题是它只更新DateDifference值。要更新其他字段,我必须再运行两次代码......

如何在一次运行中完成?

1 个答案:

答案 0 :(得分:1)

它不会在一个查询中工作,因为第二次和第三次更新使用的是前一列的值。由于它们都在Set中更新,因此您也必须计算它们。您不能只使用列名称。基本上它不会同步更新每个列。

UPDATE tblOperation 
    SET  
    tblOperation.DateDifference = DateDiff("d",[tblOperation].[Date],[tblOperation].[FinalDate]), 
    tblOperation.Tax = tblOperation.Value*tblOperation.Percentage/3000*(DateDiff("d",[tblOperation].[Date],[tblOperation].[FinalDate])), 
    tblOperation.FinalValue = tblOperation.Value-(tblOperation.Value*tblOperation.Percentage/3000*(DateDiff("d",[tblOperation].[Date],[tblOperation].[FinalDate])));