我正在使用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())
然而,这不起作用。我用于所有价格的数据类型是货币数据类型。如何计算总价?提前谢谢。
答案 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