数学运算2表中的SQL

问题描述:

随着SQL数据库在Visual Studio 2012年数学运算2表中的SQL

但我不知道如何使他们有一个自动的数学运算。的情况下: 有3表中的datagridview:

  1. 薪水
  2. salary_Overtime
  3. salary_cuts

总计=(工资+ salary_overtime) - salary_cuts

我已经在这里编写了一些编码,但是当我保存一个新的数据时它没有影响。我问我的朋友,他说你应该添加新的触发器。

==工资== Salary_Overtime == Salary_Cuts == ==总

== 5000 == 2000 == 1000 == == 6000

+0

请添加相关列,例如数据,预期产出和你被卡住查询。 –

您可以在SQL Server中使用Computed Column来执行您正在尝试执行的操作。

在一个表中指定计算列:

计算列是未物理地存储在 该表中,除非列标记PERSISTED一个虚拟列。计算列 表达式可以使用来自其他列的数据来计算其所属列的值。您可以使用SQL Server Management Studio或Transact-SQL为SQL Server 2016中的 计算列指定一个表达式。

所以下面是一个例子。注意Total列包含计算,所以当你查询表,将计算出的价值为您提供:

CREATE TABLE #Salary 
    (
     salary INT , 
     salary_overtime INT , 
     salary_cuts INT , 
     Total AS (salary + salary_overtime) - salary_cuts 
    ); 

-- Insert values into the table. 
INSERT INTO #Salary 
     (salary , 
      salary_overtime , 
      salary_cuts 
     ) 
VALUES (5000 , 
      2000 , 
      1000 
     ) 

SELECT * 
FROM #Salary 

-- Produces: 
--salary salary_overtime salary_cuts Total 
--5000  2000   1000  6000 

-- After an UPDATE: 
UPDATE #Salary 
SET  salary_cuts = 2000 

SELECT * 
FROM #Salary 

-- Produces: 
-- salary salary_overtime salary_cuts Total 
-- 5000  2000   2000  5000 

DROP TABLE #Salary