2015-11-29 68 views
0

在我的sql表中,我有三列,價格,成本,收入。我希望收入自動等於價格 - 成本(對於每一行,而不是總數)。我也想知道如何爲現有的行一次完成此操作。如何在SQL中創建「column3」=「column1」 - 「column2」

編輯:我使用的MySQL

+0

我覺得這個問題很愚蠢,但是我找不到任何東西在搜索,我的常識現在不可用,因爲某些原因 –

+0

查看'UPDATE'語句或者'SELECT'人們會用一個公式來做。這很容易找到 – Alexander

+0

好像你應該將'收入'改爲一個計算列。你使用什麼樣的數據庫?你也可以讓你的表只有'Costs'和'Revenue',並且在添加了'Revenue'的情況下有一個VIEW。 – MarcinJuraszek

回答

2

這將更新的每一行:

更新table_name的一套收入=價格 - 成本;

您可以添加一個「where」子句來限制更新哪些行。例如,要防止將任何收入值設置爲負數:

update table_name set revenue = price - cost where price> cost;

+0

感謝您的工作 –

+0

此解決方案的問題在於,如果價格和/或成本發生變化,收入列將不會相應更新。 –

2

您需要定義收入作爲計算列,這樣的事情:

CREATE TABLE sales ( 
price DECIMAL(5,2), 
cost DECIMAL(5,2), 
revenue DECIMAL(5,2) AS (price - cost) 
); 

按照現有的記錄,如果你做一個ALTER TABLE,你會得到所有的他們更新。

相關問題