数学运算2表中的SQL
问题描述:
随着SQL数据库在Visual Studio 2012年数学运算2表中的SQL
但我不知道如何使他们有一个自动的数学运算。的情况下: 有3表中的datagridview:
- 薪水
- salary_Overtime
- salary_cuts
- 总
总计=(工资+ salary_overtime) - salary_cuts
我已经在这里编写了一些编码,但是当我保存一个新的数据时它没有影响。我问我的朋友,他说你应该添加新的触发器。
==工资== Salary_Overtime == Salary_Cuts == ==总
== 5000 == 2000 == 1000 == == 6000
答
您可以在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
请添加相关列,例如数据,预期产出和你被卡住查询。 –