-4

с базой данных SQL В Visual Studio 2012математическая операция 2 таблицы в SQL

Но я не знаю, как заставить их иметь автоматическую работу по математике. случай: Существует 3 таблицы в DataGridView:

  1. зарплата
  2. salary_Overtime
  3. salary_cuts
  4. Всего

Итого = (оклад + salary_overtime) - salary_cuts

I уже пишут здесь некоторую кодировку, но это не влияет на сохранение новых данных. я спрашиваю друга, он сказал, что вам нужно добавить новый триггер.

== Зарплата == == == == Salary_Overtime Salary_Cuts == == == Всего

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

+0

Пожалуйста, добавьте соответствующие столбцы, данные примера, ожидается выход и запроса вы застряли. –

ответ

0

Вы можете использовать Computed Column на SQL Server, чтобы делать то, что вы пытаетесь сделать.

Указание вычисляемых столбцов в таблице:

Вычисляемый столбец представляет собой виртуальный столбец, который физически не хранится в таблицу, если столбец не отмечен PERSISTED. Вычисленный столбец выражение может использовать данные из других столбцов для вычисления значения для столбца, к которому он принадлежит. Вы можете указать выражение для вычисленного столбца в SQL Server 2016 с помощью управления SQL Server Studio или Transact-SQL.

Так что пример ниже. Обратите внимание, что 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