[英]How to add a column to an SQL table that is a multiplication of two other columns?
我有一個名為 SalesOrderDetail 的表,我需要附加一個名為“Revenue”的列,它是另外兩列的乘積:UnitPrice 和 OrderQty。
我正在使用以下代碼:
# creating columns revenue
ALTER TABLE SalesOrderDetail
ADD revenue DOUBLE NOT NULL;
# insert the revenues into the revenue column
INSERT INTO SalesOrderDetail(revenue)
SELECT UnitPrice*OrderQty
FROM SalesOrderDetail;
但我收到錯誤:錯誤代碼:1048。列“收入”不能為空
為什么列收入結果為空? 我之前嘗試將兩列相乘並得到預期的結果,因此它必須是代碼中的內容。 謝謝!
將該列添加為計算列:
ALTER TABLE SalesOrderDetail
ADD revenue NUMERIC(20, 4) GENERATED ALWAYS AS (UnitPrice*OrderQty) VIRTUAL;
然后在查詢中使用該值時計算它。
請注意,這使用NUMERIC
類型而不是浮點數。 始終使用NUMERIC
/ DECIMAL
表示貨幣金額。
避免數據不一致,使用生成的列:
ALTER TABLE SalesOrderDetail
ADD revenue NUMERIC(20, 4)
GENERATED ALWAYS AS (UnitPrice*OrderQty) STORED;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.