2015-11-29 46 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,你会得到所有的他们更新。

相关问题