在我的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