Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 产生整数而不是百分比的求和函数_Sql Server 2008 - Fatal编程技术网

Sql server 2008 产生整数而不是百分比的求和函数

Sql server 2008 产生整数而不是百分比的求和函数,sql-server-2008,Sql Server 2008,所以我有一个字段“total”,它由(fin_dec+fin_acc)组成。我一直在尝试用fin acc除以总数: select sum(case when fin_acc = 0 then 0 else (total/fin_acc)end)as sum1 case语句是因为它不会被0除 例如,总数是4,fin_acc是3,因此总和应该是75%,但它只是给我3。这可能是我创建fin_dec,fin_acc字段的方式,当。。。那么1就等于0,因此不会分成一个百分比。 有什么想法吗?像这样:

所以我有一个字段“total”,它由(fin_dec+fin_acc)组成。我一直在尝试用fin acc除以总数:

 select sum(case when fin_acc = 0 then 0 else (total/fin_acc)end)as sum1
case语句是因为它不会被0除

例如,总数是4,fin_acc是3,因此总和应该是75%,但它只是给我3。这可能是我创建fin_dec,fin_acc字段的方式,当。。。那么1就等于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 ..

使用nullif函数:

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

请检查你的公式。似乎
total/fin_acc
其中
total=4
fin_acc=3
从未给出75%,但如果
INT
为1,如果
DECIMAL
为1.333333。