Rails 4 的 ActiveRecord 查询
ActiveRecord query with Rails 4
你能帮我解决我的问题吗?
我有 parent table - 订阅,每个订阅可以有不同数量的版本 (subscription_versions table)。
版本有自己的 MRR 和日期。
我需要显示那个时期所有版本mrr的总和
所以我有 2 个订阅和每个订阅的 3 个版本:{date: 1, mrr: 100}, {date: 2, mrr: 200}, {date: 3, mrr: 600}
所以在那种情况下应该是:200 400 1200
我创建了查询 @subscritoins.joins(:subscriptions_versions).select(SUM(mrr)).where('subscription_versions.date <= ?, date')
但在那种情况下,它会计算总和和所有以前的版本,我只需要在该条件下采用最后一个版本来计算总和
@subscriptoions.joins(:subscription_versions).
where('version = (SELECT MAX(version) FROM subscription_versions WHERE subscription_versions.subscription_id = subscriptions.id AND contract_effective_date <= ?)', el[:end_date]).
sum(:mrr)
你能帮我解决我的问题吗? 我有 parent table - 订阅,每个订阅可以有不同数量的版本 (subscription_versions table)。
版本有自己的 MRR 和日期。
我需要显示那个时期所有版本mrr的总和
所以我有 2 个订阅和每个订阅的 3 个版本:{date: 1, mrr: 100}, {date: 2, mrr: 200}, {date: 3, mrr: 600}
所以在那种情况下应该是:200 400 1200
我创建了查询 @subscritoins.joins(:subscriptions_versions).select(SUM(mrr)).where('subscription_versions.date <= ?, date')
但在那种情况下,它会计算总和和所有以前的版本,我只需要在该条件下采用最后一个版本来计算总和
@subscriptoions.joins(:subscription_versions).
where('version = (SELECT MAX(version) FROM subscription_versions WHERE subscription_versions.subscription_id = subscriptions.id AND contract_effective_date <= ?)', el[:end_date]).
sum(:mrr)