У меня есть 2 таблицы. кредиты и платежи. Таблица платежей имеет due_loan_id. Теперь я хочу найти все платежи, относящиеся к ссуде, и выполнить вычисления в SQL ниже. Этот SQL-запрос отлично работает в MySQL Workbench. Однако я не могу заставить работать в Rails. Я не знаю, как передать переменные и группы в find_by_sql.
select d.id dueid, d.issue_loan_id, d.duedate,d.dueamount, sum(ifnull(amount, 0))paid, dueamount - sum(ifnull(amount, 0))balance from due_loans d
left join payments p
on d.id = p.due_loan_id
where d.issue_loan_id = 15
group by dueid
Если по соответствующему ссуде нет платежа, я назначаю 0 для расчетов. Среди других решений это то, что я пробовал.
def get_due_loans_results
@dueloans = DueLoan.find_by_sql(["select d.id dueid, d.issue_loan_id, d.duedate, d.dueamount, sum(ifnull(amount, 0))paid, dueamount - sum(ifnull(amount, 0))balance from due_loans d
left join payments p
on d.id = p.due_loan_id
where d.issue_loan_id =?", params[:issue_loan_id]].group_by => 'dueid')
respond_to do |format|
format.json {render json: @dueloans}
end
end
Вы пробовали как:
DueLoan.find_by_sql(["select d.id dueid, d.issue_loan_id, d.duedate, d.dueamount, sum(ifnull(amount, 0))paid, dueamount - sum(ifnull(amount, 0))balance from due_loans d
left join payments p
on d.id = p.due_loan_id
where d.issue_loan_id = ? group by dueid", params[:issue_loan_id]])