2013-03-18 44 views
-1

請幫我解決下面的問題。在SQL中包含公式選擇查詢

我需要執行計算,同時從表中獲取數據。請幫助我。更多的我也得到了零分。

ISNULL(Round(((col4)/(md.col1 + md.col2 + md.col3)), 2), 0) 

由於提前

回答

1
SELECT CASE 
     WHEN md.col1+md.col2+md.col3 = 0 THEN 0 ELSE 
     ISNULL(Round(((col4)/(md.col1+md.col2+md.col3)),2),0) 
     END AS [CALCULATION_RESULT] 
2

這將做trrick。

isnull(Round(((col4)/(NULLIF(md.col1+md.col2+md.col3,0)),2),0) 
+0

這給出了結果爲零的結果列和更多的即時通訊也獲得「在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句」。 – USDOTNetDeveloper 2013-03-18 12:52:34

+0

是的,如果(md.col1 + md.col2 + md.col3)== 0,你會得到0的結果。沒有NULLIF()你會得到div/0錯誤。你沒有說明你期望的是什麼,而不是div/0錯誤,但是NULLIF()肯定是處理這個錯誤的一種方法。 由於GROUP BY錯誤 - 發佈整個查詢,否則很難說是什麼導致了問題。 – 2013-03-18 13:01:14

+0

這是實際查找查詢的鏡像副本選擇ISnull(sum(md.col1 + md.col2 + md.col3),0)作爲'Sum of Columns',ISNULL(sum(md.col4),0)作爲'Total',isnull(Round(((col4)/(md.col1 + md.col2 + md.col3)),2),0)作爲collat​​e來自表2 tbl2內部連接RefTableoftbl2和tbe3 ref Xref.ID = tbl2。 Id內部連接table3上tbl3.Id = ref.ID內部連接table1 tbl1上tbl1.ID = ref.ID和DataEnterdDate ='FEB 2013'組通過table2colname,table3colname order by table3colname,table2Colname – USDOTNetDeveloper 2013-03-18 13:31:55

1

有關將如何:

WHERE (md.col1 + md.col2 + md.col3) > 0 

到您的查詢篩選出DIV0記錄通過空分的時候,你不會得到DIV/0錯誤?