【问题标题】:Rails 3 Sum Product of two fieldsRails 3 Sum 两个字段的乘积
【发布时间】:2013-04-08 20:11:40
【问题描述】:

我需要在我的 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;

【问题讨论】:

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


    【解决方案1】:

    是的:

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

    【讨论】:

    • 完美。谢谢!我想对于当前的酒店表演,我可以用“@hotel.id”代替“8”。
    【解决方案2】:
    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
    

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      相关资源
      最近更新 更多