Z zgp2000 Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-04 #1 我的查询语句中有如下一句:(sum(金额-成本金额) / sum(金额))*100 as 利润率 有时候查询就报 floating point division by zero 我想可能是sum(金额)正好为0造成的。有没有办法解决啊,让其出现此情况时默认为0也可以。
我的查询语句中有如下一句:(sum(金额-成本金额) / sum(金额))*100 as 利润率 有时候查询就报 floating point division by zero 我想可能是sum(金额)正好为0造成的。有没有办法解决啊,让其出现此情况时默认为0也可以。
D DeadKiss Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-04 #2 (case SUM(金额-成本金额) when 0 then 0 else sum(金额-成本金额) / sum(金额))*100 end) as 利润率
D dragoon1974 Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-04 #3 case sum(金额) when 0 then 0 else SUM(金额-成本金额) / sum(金额))*100 end as 利润率
L luoyanqing119 Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-04 #4 如果是ORACLE的话,用DECODE函数:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:if ( 条件=值1 ) return(翻译值1)else if( 条件=值2) return(翻译值2) ......else if( 条件=值n ) return(翻译值n)else return(缺省值)end if;select decode(sum(金额))*100,0,0,(sum(金额-成本金额) / sum(金额))*100) as 利润率 from table1
如果是ORACLE的话,用DECODE函数:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:if ( 条件=值1 ) return(翻译值1)else if( 条件=值2) return(翻译值2) ......else if( 条件=值n ) return(翻译值n)else return(缺省值)end if;select decode(sum(金额))*100,0,0,(sum(金额-成本金额) / sum(金额))*100) as 利润率 from table1
Z zgp2000 Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-04 #5 sql 2000数据库可以了,但是数据库是ACCESS的怎么办?
L luoyanqing119 Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-04 #6 access很多标准SQL都不支持,只能强写VBA了.
D DeadKiss Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-05 #9 IIf(sum(金额-成本金额)=0,0,sum(金额-成本金额)/ sum(金额))*100 )这个在表达式中设计还可以,要放到Sql语句中,就不知道了.
Z zgp2000 Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-05 #10 sql 2000的没问题了,就是ACCESS的还没搞定啊