2013-11-04 75 views
0

我正在使用SQL Management Studio創建數據庫。我有一個名爲項目與下列的表:根據SQL中其他列中的信息計算總價格

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

您可能只需要將[]置於列名的周圍以避免混淆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