Rails 3 Sum两个字段的乘积

时间:2013-04-08 20:11:41

标签: sql ruby-on-rails ruby ruby-on-rails-3

我需要计算Rails 3应用程序中两个字段的乘积之和(即相当于Excel的sumproduct函数)。 Rails中是否有一个方法可以帮助解决这个问题,如果没有,那么使用自定义sql的rails代码是什么?

例如,酒店有很多房间。房间具有sqft(平方英尺),数量(该尺寸)和hotel_id的属性。我想计算一家酒店所有客房的总平方英尺。在SQL中,对于Hotel.id = 8,我相信以下语句将起作用:

select sum(rooms.sqft * rooms.quantity) as SumSqft from rooms inner join hotels on rooms.hotel_id = hotels.id where hotels.id = 8;

2 个答案:

答案 0 :(得分:18)

是的:

Room.where(hotel_id: 8).sum("sqft * quantity")

答案 1 :(得分:0)

def calculate
  @hotel=Hotel.find(params[:id]
  @rooms=Room.all.where(:hotel_id=>@hotel.id)
  sum=0
  @rooms.each do |room|
    sum=sum+room.sqft*room.quantity
  end
  return sum
end