我需要更新或select语句来执行以下操作
SoldOut RefundIn UnitCost Total Cost
0 1 -1.00 ????
0 10 -1.00 ????
1 0 1.00 ????
10 0 10.00 ????
所以我想将单位成本或单位成本中的单位乘以总成本
答案 0 :(得分:0)
使用update通过计算在DB中存储总成本。
UPDATE <table name> SET total_cost = UnitCost * (SoldOut-RefundIn)
答案 1 :(得分:0)
我会说从不存储计算值,过多的数据不一致风险。创建一个计算计算值的视图。
create view view_name as
select SoldOut, RefundIn, UnitCost, (SoldOut - RefundIn) * UnitCost as TotalCost
from table_name
答案 2 :(得分:0)
所以我想将
or
Out中的单位乘以单位成本以获得总成本
由于您需要选择具有条件的列,因此您可以使用任何方法。
方法1:使用动态SQL动态传递列
DECLARE @COLUMNNAME NVARCHAR(100)='RefundIn'
DECLARE @QRY NVARCHAR(MAX)
SET @QRY = 'UPDATE Yourtable SET [Total Cost] = '+@COLUMNNAME+' * UnitCost'
EXEC SP_EXECUTESQL @QRY
方法2:在CASE
查询中使用update
语句
UPDATE Yourtable SET [Total Cost] = CASE WHEN SoldOut = 0 THEN RefundIn * UnitCost
WHEN RefundIn = 0 THEN SoldOut * UnitCost
END
如果您需要对列名进行硬编码,可以使用以下代码
UPDATE Yourtable SET [Total Cost] = RefundIn * UnitCost