2014-11-23 48 views
0

我有一個表與那些列PRICE int值,QUANTITE int值,TOTAL int值 我想插入PRICE和QUANTITE並讓SQL查詢計算她的總數是我的查詢看起來怎麼樣如何在表中插入一個計算的SUM

INSERT INTO table_name (PRICE,QUANTITE,TOTAL) 
VALUES ('4800','3',PRICE * QUANTITE); 

它沒有工作,所以我試圖用另一個查詢

INSERT INTO table_name (PRICE,QUANTITE,TOTAL) 
VALUES('4800','3',SELECT (QUANTITE * PRICE) as TOTAL from table_name); 

這也沒工作,什麼建議嗎?

+0

做到這一點,如果你不想重複上插入值,使用觸發器來更新TOTAL Column.Also SQL Server和MySQL是不同的東西。 – Mihai 2014-11-23 12:23:02

+3

完全刪除列。規範化的一個規則是不存儲計算值。 – 2014-11-23 12:24:52

+0

給你的表值和錯誤信息。 – philipxy 2014-11-23 12:35:39

回答

0

可變

DECLARE @I INT 
INSERT INTO table_name 
SELECT PRICE,QUANTITE,@i=(QUANTITE * PRICE) 
from table_name 
WHERE PRICE=4800 AND QUANTITE=3 
2

可以使用insert . . . select做到這一點:

INSERT INTO table_name(PRICE, QUANTITE, TOTAL) 
    SELECT price, quantite, price * quantite 
    FROM (SELECT 4800 as Price, 3 as Quantite) t; 

注意:你不應該使用數字常量單引號。只對字符串和日期常量使用單引號。

+0

@AbdeslemCharif。 。 。作爲OP,您可以選擇接受任何您喜歡的答案。不過,我很好奇,爲什麼畢竟這個時候你會選擇另一個答案,這似乎更復雜,因爲它需要聲明一個變量。 – 2016-07-25 22:26:14