如何通过Rails中的find_by_sql和GROUP_BY变量

问题描述 投票:0回答:1

我有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

MySQL screenshot

jquery mysql ruby-on-rails ruby
1个回答
1
投票

你有没有尝试这样的:

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]])
© www.soinside.com 2019 - 2024. All rights reserved.