求和函数产生整数而不是百分比

时间:2013-02-07 16:46:44

标签: sql-server-2008

所以我有一个由'(fin_dec + fin_acc)组成的字段'total'。我一直试图通过fin acc来划分总数:

 select sum(case when fin_acc = 0 then 0 else (total/fin_acc)end)as sum1

案例陈述是因为它不会除以0!

例如,总数为4,fin_acc为3,因此总和应为75%,但它只是给了我3.这可能是我创建fin_dec,fin_acc字段的情况,当时...然后其他1 0因此不会分成百分比。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

像这样:

select sum(fin_acc) as s, count(fin_acc) as n from ..

然后用你的编程语言:

if(n>0) avg= s/n else avg= null;

或只是使用:

select avg(fin_acc) as a from ..

答案 1 :(得分:0)

使用nullif函数:

select sum(1.0*total/nullif(fin_acc,0))as sum1