2016-11-23 2 views
0

Я новичок в SQL Server. У меня есть столбец со значением продукта, теперь я хочу добавить значение столбца + налог (tax = 10% value) в ту же таблицу. Любое предложение, как сделать это самым быстрым способом или я должен вставить 1 на 1? Могу ли я просто скопировать столбец значений и добавить некоторую математику? Если я смогу это сделать, кто-то покажет, как это работает? Благодарю.Копирование столбца с математическим SQL-сервером

+0

Запустите запрос 'Update' с' Self join', чтобы обновить данные. –

+4

Возможно, вы не захотите добавить такой вычисленный столбец, так как ставка налога может измениться в какой-то момент. –

ответ

0

Если налог всегда то же самое, вы можете использовать вычисляемый столбец:

alter t add value_plus_tax as (value * 1.1); 

Это вычисляет значение всякий раз, когда вам это нужно. В противном случае, вы должны добавить столбец в явном виде и обновить его:

alter t add value_plus_tax decimal(10, 2); -- or whatever 

update t 
    set value_plus_tax = value * 1.1; 
0

Если ставка налога может измениться, вы можете сохранить скорость в отдельной таблице и использовать вид, который соединяет две таблицы для извлечения данных .. .

CREATE TABLE TaxRate (
    [Percent] TINYINT 
) 

GO 

CREATE VIEW ValuesWithTax AS 
SELECT *, [Value] * [Percent]/100 ValueWithTax FROM [Values] 
CROSS JOIN TaxRate 
0

Если ставка налога не является значением затруднительное, можно добавить столбец, чтобы сохранить ставку налога и вычисляемый столбец для сохранения общей стоимости

ALTER TABLE table1 add tax_rate decimal(19,4) DEFAULT(0.1) WITH VALUES 
ALTER TABLE table1 add toatal_value as ([value](1+tax_rate)) 
0

добавить вычисляемый столбец как (имеющий все вычисления) ,

Т.е.: Ниже примера я рассмотрел сумму столбца значения и налога, вы можете сделать любой расчет (убедитесь, что расчет не должен вызывать исключение, рассматривая граничное условие).

 ALTER TABLE dbo.tableName ADD RetailValue AS (value+tax); 

вы можете сделать это стойкой вычисленной колонки тоже.

Смежные вопросы