【发布时间】:2023-03-15 18:09:01
【问题描述】:
我有两张桌子
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 然后 distinct 有效,但我必须使用 select with distinct。任何帮助将不胜感激。
【问题讨论】:
-
based on last record of budget detail's balance attribute这句话令人困惑。属性不能有最后一条记录。只有一个表的最后一条记录可以具有多个属性。请澄清问题 -
我有更明确的帖子
-
如果您需要根据最后关联的
budget_details记录应用排序,那么budget_details.created_at列应该以某种方式参与查询以查找最后创建的记录。你不这么认为吗?
标签: ruby postgresql ruby-on-rails-5