0

したがって、(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 になるだけです。パーセンテージに分割されません。何か案は?

4

2 に答える 2

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 ..
于 2013-02-07T16:51:25.993 に答える
0

nullif 関数を使用します。

select sum(1.0*total/nullif(fin_acc,0))as sum1
于 2013-02-07T23:33:51.320 に答える