根据SQL中其他列中的信息计算总价

时间:2013-11-04 19:28:27

标签: sql database

我正在使用SQL Management Studio来创建数据库。我有一个名为Items的表,其中包含以下列:

ID    Product Name  Original Price     Discount Price   Shipping Price   Tax  Total Price

现在我只是添加任意产品名称和原始价格。我想要做的是让我的总价格列做类似Excel的事情,在给定原价,折扣价,运费和税的情况下,我可以在总价中创建一个公式,这样如果任何其他价格发生变化,总价格自动计算。我不知道该怎么做,但我试图创建一个函数,然后在我的INSERT VALUES语句中调用该函数:

CREATE FUNCTION dbo.CalculateTotal()
RETURNS money;
AS

BEGIN
DECLARE @totalPrice int;
SELECT @totalPrice = ((Original Price - Discount Price) + Shipping Price) + tax
FROM dbo.Items
Return @totalPrice

END

然后我插入了方法:

  INSERT INTO dbo.Items VALUES('00000', 'Laptop', $200.00, $20.00, $4.99, $5.49,   dbo.CalculateTotal())

然而,这不起作用。我用于所有价格的数据类型是货币数据类型。如何计算总价?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可能只需要在列名称周围添加[],以避免混淆Management Studio。

这对我有用:

CREATE FUNCTION dbo.CalculateTotal()
RETURNS money
AS
BEGIN
    DECLARE @totalPrice int;
    SELECT @totalPrice = (([Original Price] - [Discount Price]) + [Shipping Price]) + tax
    FROM dbo.Items
    Return @totalPrice
END