我正在使用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())
但是,这并没有奏效。我用于所有价格的数据类型是货币数据类型。如何计算总价?提前谢谢。
您可能只需要在列名称周围放置[]
,以避免混淆管理工作室。
这对我有用:
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