Sql server 在SQL选择查询中包含公式

Sql server 在SQL选择查询中包含公式,sql-server,divide-by-zero,Sql Server,Divide By Zero,请帮我解决以下问题 我需要在从表中提取数据时执行计算。请帮我一下。而且我也得到了零的除法 ISNULL(Round(((col4) / (md.col1 + md.col2 + md.col3)), 2), 0) 提前感谢这将完成任务。除以null时不会出现div/0错误: SELECT CASE WHEN md.col1+md.col2+md.col3 = 0 THEN 0 ELSE ISNULL(Round(((col4)/(md.col1+md.col

请帮我解决以下问题

我需要在从表中提取数据时执行计算。请帮我一下。而且我也得到了零的除法

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

提前感谢

这将完成任务。除以null时不会出现div/0错误:

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]
isnull(Round(((col4)/(NULLIF(md.col1+md.col2+md.col3,0)),2),0) 
如何添加:

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

要筛选出Div0记录,请执行以下操作?

这将为结果列的结果设置为零,并且在选择列表中“morever im也获取”无效,因为它不包含在聚合函数或GROUP BY子句中。是的,如果(md.col1+md.col2+md.col3)==0,则最终结果为0。如果没有NULLIF(),您将得到div/0错误。您没有确切说明希望发生什么而不是div/0错误,但是NULLIF()肯定是处理此错误的一种方法。至于GROUP BY error-发布整个查询,否则很难说是什么导致了问题。这就是实际查询的镜像副本选择ISnull(sum(md.col1+md.col2+md.col3),0)作为“列之和”,ISnull(sum(md.col4),0)作为“总计”,ISnull(Round((col4)/(md.col1+md.col2+md.col3)),2),0)作为colrate,来自外部参照上的Table2 tbl2内部联接RefTableOfBl2和TBE3 ref。ID=tbl2.ID内部联接table3 tbl3.ID=ref.ID内部联接table1 tbl1.ID=ref.ID和DataEnterdDate='2013年2月'group by Table2 ColName,table3 ColName order by table3 ColName,Table2 ColName这是因为colrate不包含在任何聚合函数中,两个都不是一组的。它与表达式本身的有效性无关。