在轨道上选择最小价格红宝石

时间:2013-09-13 10:31:46

标签: sql ruby-on-rails

我在我的视图索引中有这个代码,它显示了我的项目的价格。

      <% for import_price in ItemImportPrice.find(:all,
         :conditions => ['itemCode = ? and beginDate = ?', item.short_name, item_days.day) ], 
                                         :order => ['price asc']) %>
          <%= import_price.price %>  
          <%= import_price.superItemType %>
          ...
      <% end %>

在视图中,我有以下结果:

89.0     I 
99.0     I 
109.0    I 
119.0    I 
129.0    I 
129.0    O
139.0    O
149.0    O 
159.0    O
439.0    B
459.0    B
529.0    D 
849.0    D 
949.0    D 

怎么做才会显示superItemType(I,O,B,D)的最低价格?

如果我添加:group =&gt; “superStateroomType”它显示4个项目,但价格不是最小的。

P.S。可能是这种方法,但我不知道如何将它应用于所有...

ItemImportPrice.all(:select => "Min(price) as min_price", :conditions => ["itemCode = ? and beginDate = ?", item.short_name, item_days.day]).first.min_price

2 个答案:

答案 0 :(得分:0)

请尝试

ItemImportPrice.select('MIN(price) AS min_price, superItemType').group('superItemType')

答案 1 :(得分:0)

你可以像这样使用它:

ItemImportPrice.all(:select =&gt;“superItemType,Min(price)as min_price”,:conditions =&gt; [“itemCode =?and beginDate =?”,item.short_name,item_days.day],:group =&GT; “superItemType”)first.min_price