У меня есть приложение rails с базой данных postgre, и я пытаюсь получить некоторые показатели со следующим утверждением
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
спасибо!
Pierre