2014-02-06 54 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