在我的sql表中,我有三列,價格,成本,收入。我希望收入自動等於價格 - 成本(對於每一行,而不是總數)。我也想知道如何爲現有的行一次完成此操作。如何在SQL中創建「column3」=「column1」 - 「column2」
編輯:我使用的MySQL
在我的sql表中,我有三列,價格,成本,收入。我希望收入自動等於價格 - 成本(對於每一行,而不是總數)。我也想知道如何爲現有的行一次完成此操作。如何在SQL中創建「column3」=「column1」 - 「column2」
編輯:我使用的MySQL
這將更新的每一行:
更新table_name的一套收入=價格 - 成本;
您可以添加一個「where」子句來限制更新哪些行。例如,要防止將任何收入值設置爲負數:
update table_name set revenue = price - cost where price> cost;
感謝您的工作 –
此解決方案的問題在於,如果價格和/或成本發生變化,收入列將不會相應更新。 –
您需要定義收入作爲計算列,這樣的事情:
CREATE TABLE sales (
price DECIMAL(5,2),
cost DECIMAL(5,2),
revenue DECIMAL(5,2) AS (price - cost)
);
按照現有的記錄,如果你做一個ALTER TABLE,你會得到所有的他們更新。
我覺得這個問題很愚蠢,但是我找不到任何東西在搜索,我的常識現在不可用,因爲某些原因 –
查看'UPDATE'語句或者'SELECT'人們會用一個公式來做。這很容易找到 – Alexander
好像你應該將'收入'改爲一個計算列。你使用什麼樣的數據庫?你也可以讓你的表只有'Costs'和'Revenue',並且在添加了'Revenue'的情況下有一個VIEW。 – MarcinJuraszek