我有我的轨道与postgre数据库应用程序,我试图得到一些指标,用下面的语句Rails的:防止被零除在Postgres
Negotiation.find(:all, :conditions => conditions_hash('negotiation'), :select => 'sum(payment_term * amount_after_annualised_base)/sum(amount_after_annualised_base) as pt').first
我怎么能确保总和(amount_after_annualised_base )不是0(因此不会抛出“除零”错误)?
我发现了这个,但不知道它是正确的/最好的/最有效的方式。
Negotiation.find(:all, :conditions => conditions_hash('negotiation'), :select => 'sum(payment_term * amount_after_annualised_base)/(CASE sum(amount_after_annualised_base) WHEN 0 THEN NULL ELSE sum(amount_after_annualised_base) END) as pt').first
谢谢! 皮埃尔
这是行不通的?因为你仍然试图在所有情况下进行分工。 – nathanvda 2011-03-01 14:12:36
它实际上工作。为了简明起见,我拿这个 – Pierre 2011-03-01 18:52:36