我有2个表。 due_loans和支付。支付表已due_loan_id。现在我想找到属于金融机构逾放所有付款,并在下面SQL执行计算。该SQL查询在MySQL工作台可以正常使用。然而,我无法使工作在导轨上。我不知道如何传递变量和组的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]])