У меня есть следующий код в приложении Rails 3.Рельсы 3 Активные записи и суммы
@clinical_healthplan_spend = Clinical.select("ClientKey as client_key, PVID as animal_key, sum(Payments) as total_payments")
.where("ClinicalText LIKE 'Paid by PET HEALTH' AND PVID != 44444")
.order("sum(Payments) DESC")
.group("animal_key")
Я пытаюсь добиться следующего:
- Заказать результаты по самым высоким total_payments первыми.
- Предел таблица записей со значением total_payment, по крайней мере, 1500.
Для первого требования;
.order("sum(Payments) DESC")
Не работает и ни делает
.order("total_payments DESC")
Для второго требования;
.where("total_payments > 1500")
не работает.
Я помещаю условия в нужное место или есть другой способ сделать это при использовании опциона sum?
Любая помощь будет оценена!
Это сработало, но вы могли бы объяснить: «И в вашей группе вы должны включить все поля, у которых нет совокупности».? – dannymcc
Вы хотите показать сумму (которая является [агрегатной функцией] (http://en.wikipedia.org/wiki/Aggregate_function)) платежей за комбинацию 'animal_key' и' client_key'. Таким образом, вы должны «GROUP BY» и «animal_key», и «client_key». Вы понимаете? – Mischa
Да, я так думаю. Спасибо за объяснение! – dannymcc