Sql server 2008 Sql:不同列的减法公式?

Sql server 2008 Sql:不同列的减法公式?,sql-server-2008,sql-server-2005,c#-4.0,Sql Server 2008,Sql Server 2005,C# 4.0,我正试图在SQL Server中编写一个公式,用以减去两个不同表的表2的[amountspend]列和表1的[Amount]列的值,并更新[Amount]列的余额。你知道吗 提前感谢您……我认为,假设您在两个表之间有可靠的外键关系,下面的方法将起作用 UPDATE [table1] SET [table1].[Amount] = [table1].[Amount] - [table2].[AmountSpent] FROM [table1] INNER JOIN [table2] ON [tab

我正试图在SQL Server中编写一个公式,用以减去两个不同表的表2的
[amountspend]
列和表1的
[Amount]
列的值,并更新[Amount]列的余额。你知道吗


提前感谢您……

我认为,假设您在两个表之间有可靠的外键关系,下面的方法将起作用

UPDATE [table1]
SET [table1].[Amount] = [table1].[Amount] - [table2].[AmountSpent]
FROM
[table1] INNER JOIN
[table2] ON
[table1].[KeyField] = [table2].[KeyField]

假设两个表之间有可靠的外键关系,我认为下面的方法可以奏效

UPDATE [table1]
SET [table1].[Amount] = [table1].[Amount] - [table2].[AmountSpent]
FROM
[table1] INNER JOIN
[table2] ON
[table1].[KeyField] = [table2].[KeyField]

我明白了………谢谢@james Osborn

     create procedure SP_Subtraction
      (
       @EmpID int 
       )
      as
      begin
      UPDATE PTS_BalanceTracker
      SET PTS_BalanceTracker.Balance_BalanceAmount = PTS_BalanceTracker.Balance_BalanceAmount - PTS_Transactions.Transaction_Amount
      FROM
      PTS_BalanceTracker INNER JOIN
      PTS_Transactions ON
      PTS_BalanceTracker.Emp_ID = @EmpID
      end

我明白了………谢谢@james Osborn

     create procedure SP_Subtraction
      (
       @EmpID int 
       )
      as
      begin
      UPDATE PTS_BalanceTracker
      SET PTS_BalanceTracker.Balance_BalanceAmount = PTS_BalanceTracker.Balance_BalanceAmount - PTS_Transactions.Transaction_Amount
      FROM
      PTS_BalanceTracker INNER JOIN
      PTS_Transactions ON
      PTS_BalanceTracker.Emp_ID = @EmpID
      end
对于关系数据库,一般建议不要存储计算结果,除非有特定的性能原因。存储的计算总是有可能出错。对于关系数据库,一般建议不要存储计算结果,除非有特定的性能原因。存储的计算总是有可能不正确。