2014-02-06 50 views
0

我从表2列,我想第三列添加到输出的计算添加列到选择的计算

结果

此刻select语句是:

select revenue, cost 
from costdata 

我的2列是收入和成本

表名:costdata

我的公式是:= ((revenue - cost)/ revenue)*100

我想第三列被命名为'结果'

任何想法如何在select语句中做到这一点?

回答

1

查询:

SELECT revenue, 
     cost, 
     CASE WHEN revenue <> 0 
      THEN ((revenue - cost)/revenue) * 100 
     ELSE 0 END As result 
FROM costdata 
+0

欢呼声,这一个工作 – jeffry

+0

如果收入是十进制或浮动然后它确定否则你必须把它转换成十进制才能得到确切的结果。 – KumarHarsh

2
SELECT revenue 
    , cost 
    , ((revenue - cost)/revenue) * 100 As result 
FROM costdata 

你在评论中提到你得到一个除零错误。当revenue等于零时会发生这种情况。

要在这种情况下会发生什么,完全由你,但这应该让你开始

SELECT revenue 
    , cost 
    , CASE WHEN revenue = 0 THEN 
     0 
     ELSE 
     ((revenue - cost)/revenue) * 100 
     END As result 
FROM costdata 
+0

有是错误:遇到零分错误。 – jeffry

+0

@jeffry答案更新:) – gvee

1

尝试,

select revenue, cost,((revenue - cost)/ revenue)*100 AS result 
from costdata 
+0

有错误:遇到零分错误。 – jeffry

+0

我认为你的'收入'在某些情况下返回0。你必须检查。 – BAdmin

+0

您可以使用 选择dividend/nullif(除数,0) 来源:http://stackoverflow.com/questions/861778/how-to-avoid-the-divide-by-zero-error-in-sql – BAdmin

1
SELECT revenue, cost, ((revenue - cost)/ revenue)*100 AS result FROM costdata