将相同表的两列相乘并将结果存储到同一表的第三列

时间:2013-07-17 10:08:26

标签: sql sql-server product

我有一张桌子

SALES(sno,comp_name,quantity,costperunit,totalcost)

提供costperunit值后,totalcost需要计算为"totalcost=quantity*costperunit".

我希望将'quantity''costperunit'列相乘,并将结果存储在同一个表的'totalcost'列中。

我试过这个:

insert into SALES(totalcost) select quantity*costperunit as res from SALES

但它失败了!

有人请帮助我实现这个目标.. 在此先感谢

5 个答案:

答案 0 :(得分:5)

尝试更新表格

UPDATE SALES SET totalcost=quantity*costperunit

答案 1 :(得分:3)

您需要使用更新。

UPDATE SALES SET totalcost=quantity*costperunit

答案 2 :(得分:2)

如果你不手动计算这个字段但是改为computed column会更好 - 所以它会自动为你计算。

您可以使用以下查询更改列:

ALTER TABLE Sales
DROP COLUMN totalcost

ALTER TABLE Sales
ADD totalcost AS quantity*costperunit

<强> DEMO

答案 3 :(得分:1)

在插入新行时尝试此操作

      INSERT INTO test(sno,comp_name,quantity,costperunit,totalcost)
      Values (1,@comp_name,@quantity,@costperunit,@quantity*@costperunit)

答案 4 :(得分:1)

最好不要存储可以计算的字段,但是如果您愿意,可以使用SQL Server设置一个字段,以便在值存在时自动计算。