根据sql表中另一个变量的值自动设置一个变量的值

时间:2009-09-25 22:04:10

标签: sql sql-server stored-procedures datatable

我是sql的新手,如何根据其他变量的值自动设置一个变量的值。 我在食品表中有价格,在订单表中我想根据特定食品的订单数改变价格的总价值。

1 个答案:

答案 0 :(得分:2)

我可以想到两种方法。第一个是订单记录已插入数据库并且您只想更新其总价值时:

UPDATE Order
Set TotalPrice = NumberOfItems * 
                 (SELECT Price FROM Food WHERE Food.FoodId = Order.FoodId)

或者,您可以在将订单插入数据库表时获取食品的价格:

-- Given: @FoodId and @NumberOfItems have been passed to this 
-- stored procedure as parameters
DECLARE @price DECIMAL(10, 2) -- or whatever your price is defined to be

SELECT @price = Price
FROM Food
WHERE FoodId = @FoodId

INSERT INTO ORDER(FoodId, NumberOfItems, TotalPrice)
VALUES
(@FoodId, @NumberOfItems, @NumberOfItems * @Price)