【发布时间】:2014-05-25 00:07:54
【问题描述】:
查询从 date_start 到 date_end,我需要验证每个日期给定产品的可用数量是否满足阈值。
@inventories = Inventory.where(['product_id IN (?) AND date_available >= ? AND date_available <= ? AND quantity >= ?', @products, @date_start, @date_end, params[:quantity]]).all
此查询生成在任何给定日期满足条件的库存。但是,对于给定的产品,需要在每个日期满足这些条件。因此,
@products = @inventories.map(&:product).uniq
Q1我现在如何推断所有 available_products(即每个日期的数量 >= ?)和
Q2我需要对每个 available_product 的每个日期的价格求和,以便按价格对视图进行排序
*编辑 *
鉴于建议的答案,我认为提供示例数据以进一步澄清可能是明智的
product_iddate_availablequantityprice_1price_2
1 ---- 2014-05-27 ---- 3 ---- 35 ---- 60
1 ---- 2014-05-28 ---- 3 ---- 35 ---- 60
1 ---- 2014-05-29 ---- 3 ---- 25 ---- 50
2 ---- 2014-05-27 ---- 3 ---- 35 ---- 60
2 ---- 2014-05-28 ---- 1 ---- 35 ---- 60
2 ---- 2014-05-29 ---- 3 ---- 35 ---- 60
3 ---- 2014-05-27 ---- 3 ---- 30 ---- 55
3 ---- 2014-05-28 ---- 3 ---- 30 ---- 55
3 ---- 2014-05-29 ---- 3 ---- 30 ---- 55
@price = 'price_1' 和 params[:quantity] 的串联
如果搜索参数是 2014-05-27..2014-05-29,数量 = 2
我应该生成
价格为 165 的产品 3
产品 1 价格 170
产品 2 失败,因为在某一日期未达到阈值。
上下文:rails 3.2.17、postgresql、ruby 1.9.3
【问题讨论】:
标签: ruby-on-rails-3.2 multiple-conditions