Умножение столбцов в активной записи? - PullRequest
0 голосов
/ 06 апреля 2019

Есть следующий SQL-запрос, как бы я перевести умножение двух столбцов в Active Record?

SELECT plan_name, plan_price, count(plan_id), plan_price*count(plan_id) AS totalrevenue
FROM leads
INNER JOIN plans p ON leads.plan_id = p.id
WHERE lead_status_id = 5
GROUP BY plan_name, plan_price;

1 Ответ

0 голосов
/ 06 апреля 2019

Я бы попробовал что-то вроде этого.

leads = Lead.joins(:plans).
    where(lead_status_id: 5).
    group(:plan_name, :plan_price).
    select('plan_name, plan_price, count(plan_id), plan_price * count(plan_id) AS totalrevenue')

leads.each { |lead| puts lead.totalrevenue }

Примечание:

  1. Я не знаю, joins(:plan) или joins(:plans), это зависит от вашегоассоциации
  2. Если вам нужно вызвать даже счет plan_id, я бы дал имя даже этому полю
  3. Поле, подобное totalrevenue, не выводится, если вы печатаете весь объект,потому что это не часть этого, это виртуальный атрибут
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...