Mysql 如何在Ruby Join query(Ruby on Rails)中编写此sql查询

Mysql 如何在Ruby Join query(Ruby on Rails)中编写此sql查询,mysql,sql,ruby-on-rails,ruby,Mysql,Sql,Ruby On Rails,Ruby,我在使用find\u by\u SQL的模型中使用了这个SQL查询,但是在模型中的Ruby连接中,如果没有SQL的帮助,我应该会得到同样的结果 类似这样: SELECT rs.id as rs_id, sum(rs.amount_per_month) as rs_am1, sum(rs.amount_per_month_per_sqft) as rs_am2, rs.from_date,rs.to_date,cc.charge_type as cc FROM lease_rent_roll

我在使用
find\u by\u SQL
的模型中使用了这个SQL查询,但是在模型中的Ruby连接中,如果没有SQL的帮助,我应该会得到同样的结果

类似这样:

SELECT rs.id as rs_id,
sum(rs.amount_per_month) as rs_am1,
sum(rs.amount_per_month_per_sqft) as rs_am2,
rs.from_date,rs.to_date,cc.charge_type as cc 
FROM   lease_rent_rolls as lrr 
INNER JOIN leases as l ON  lrr.lease_id = l.id 
INNER JOIN rents as r ON l.id = r.lease_id 
INNER JOIN rent_schedules as rs ON r.id = rs.rent_id 
INNER JOIN charge_codes as cc ON rs.charge_code_id = cc.id 
WHERE lrr.id = 449443 
AND   DATE(NOW()) BETWEEN rs.from_date AND rs.to_date 
GROUP BY cc.charge_type
与: -类别\u id和名称属于良好数组
-邮政编码属于用户数组

如果您将提供关联,则提供解决方案将更有帮助

现在,我正在考虑:

LeaserEntrol有一个或多个租约

租约有很多租金

租金有很多租金表

和RentSchedule有许多收费代码

如果LeaserEntrol有一个租约:

@goods =Good.joins(:user).where("name like ?", "%#{@searched_good}%").where("category_id = ?", params[:category]).where("postal_code == ?", @searched_good_postal_code)
租金明细表。从日期起,租金明细表。到日期,费用代码。费用类型为“cc”)

如果租赁人拥有多个租赁:

LeaseRentRoll.where(:id => 449443).first.lease.joins(:rents => [:rent_schedules => charge_codes]).select("rent_schedules.id as rs_id, sum(rent_schedules.amount_per_month) as rs_am1, sum(rent_schedules.amount_per_month_per_sqft) as rs_am2,
请看附件中的图片。这将有助于了解以上查询的更多内容

LeaseRentRoll.where(:id => 449443).first.leases.joins(:rents => [:rent_schedules => charge_codes]).select("rent_schedules.id as rs_id, sum(rent_schedules.amount_per_month) as rs_am1, sum(rent_schedules.amount_per_month_per_sqft) as rs_am2, rent_schedules.from_date,rent_schedules.to_date,charge_codes.charge_type as cc")

RentSchedule.join([{:rent=>{:lease=>:lease\u rent\u rolls},:charge\u code])。其中(“lease\u rent\u rolls.id={lease\u rr.id}
和租金计划。从日期<'{date.today.strftime(“%Y-%m-%d%H:%m:%s”)}
和rent_schedules.to_date>“#{date.today.strftime(“%Y-%m-%d%H:%m%s”)”)))。组(“费用代码.费用类型”)

已获得此查询的结果。谢谢大家!

请同时向我们展示您的模型,包括它们之间的关联。请共享您的模型关联,这样会更有帮助。谢谢您的帖子,但我需要加入多个表。
RentSchedule.joins([{:rent => {:lease => :lease_rent_rolls}}, :charge_code]).where("lease_rent_rolls.id = #{lease_rr.id} 
and rent_schedules.from_date < '#{Date.today.strftime("%Y-%m-%d %H:%M:%s")}' 
and rent_schedules.to_date > '#{Date.today.strftime("%Y-%m-%d %H:%M%s")}'").group("charge_codes.charge_type")