Distinct не работает с предложением select - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть 2 таблицы

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

class BudgetDetail < ApplicationRecord
  belongs_to :department_budget
end

Каждый отдел имеет бюджеты на определенный период времени.и в каждом отделе есть много бюджетных_деталей, которые состоят из всех кредитных и дебетовых записей и поддерживают оставшийся баланс.

Проблема в том, что я хочу применить сортировку к бюджету отдела на основе сальдо последней бюджетной детали.

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

Я реализовал вышеуказанный запрос, но он возвращает повторяющиеся записи .проблема связана с предложением select , если я удаляю select, а затем отдельные работы, но я должен использовать select с различными. Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Непонятно, какова ваша цель, но если мы предположим, что ваш SQL логически корректен, то для достижения этой цели вы должны использовать предложение GROP BY и статистическую функцию.

DepartmentBudget.joins(:budget_details)
                .select('department_budgets.*, MIN(budget_details.balance)')
                .group('department_budgets.id')
                .order("MIN(budget_details.balance) ASC")
0 голосов
/ 19 сентября 2018
DepartmentBudget.includes(:budget_details).order("budget_details.balance ASC")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...