Distinct不适用于select子句

时间:2018-09-19 06:18:37

标签: ruby postgresql ruby-on-rails-5

我有2张桌子

class DepartmentBudget < ApplicationRecord
  has_many :budget_details, dependent: :destroy
end

class BudgetDetail < ApplicationRecord
  belongs_to :department_budget
end

每个部门都有特定时期的预算。每个部门都有许多budget_details,其中包括所有贷方和借方分录,并保持余额。

问题是我想根据最新预算明细的余额对部门预算进行排序。

DepartmentBudget
  .joins(:budget_details)
  .select('budget_details.balance, department_budgets.*')
  .order("budget_details.balance ASC")
  .distinct

我已经实现了上面的查询,但是返回的是重复记录。问题在于 select 子句,如果我先删除select之后再进行区分工作,但是我必须将select与distinct一起使用。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

DepartmentBudget.includes(:budget_details).order("budget_details.balance ASC")

答案 1 :(得分:0)

不清楚您的目的是什么,但是如果我们假设您的SQL在逻辑上是正确的,那么您应该使用<input id="uniqueValuesSelect" data-dojo-type="dijit.form.ComboBox" value="statename" onchange="app.zoomRow(document.getElementById('uniqueValuesSelect').value, document.getElementById('uniqueValuesSelect2').value);" /> <input id="uniqueValuesSelect2" data-dojo-type="dijit.form.ComboBox" value="FarmedAcres" onchange="app.zoomRow(document.getElementById('uniqueValuesSelect').value, document.getElementById('uniqueValuesSelect2').value);" /> 子句和聚合函数来实现您的目的。

GROP BY