1
我正在嘗試在我們的系統中找到「欠薪」事件的集合。我們使用Postgres數據庫運行Rails 3.2。有效記錄:根據兩個關聯表的總和查找集合
數據結構如下。
class Event < ActiveRecord::Base
has_many :charges
has_many :transactions
end
class Charge < ActiveRecord::Base
belongs_to :event
end
class Transaction < ActiveRecord::Base
belongs_to :event
end
欠付事件定義爲總收費大於總交易的那些事件。
sum(charges.total) > sum(transactions.total)
我的SQL技能很差,我一直在嘗試使用ActiveRecord來執行此操作。這是我最近的嘗試,但它沒有帶回正確的收藏。特別是,如果有多筆交易,它似乎包括全額付款事件。
Event.joins(:charges,:transactions).group('charges.event_id, transactions.event_id').having("sum(charges.total) > sum(transactions.total)")
是否有可能在ActiveRecord的實現這一點,如果是的話,我該怎麼做呢?