2015-07-10 71 views
0

我有兩個型號產品和定價歷史。獲得按百分比排序的產品

產品(ID,姓名)的has_many PricingHistory(ID,percent_off,PRODUCT_ID)

我需要加入產品與最新的PricingHistory和percent_off訂購吧。

我寫了這個:

Product.joins(:pricing_histories).group('products.id').order("max(pricing_histories.id) ASC").order('max(pricing_histories.percent_off) DESC') 

但它不是爲了返回數據。

如: 產品:

ID PRODUCT 
1  aa 
2  bb 
3  cc 

PricingHistory

PRODUCT_ID PERCENT_OFF CREATED_ON 
    1   10   10/10/2015 
    1   20   10/11/2015 
    2   30   10/12/2015 
    2   40   10/13/2015 
    3   50   10/14/2015 
    3   60   10/14/2015 

我想要得到的結果是:

ID PRODUCT PRODUCT_ID PERCENT_OFF CREATED_ON 
1  aa  1   20   10/11/2015 
2  bb  2   40   10/13/2015 
3  cc  3   60   10/14/2015 
+2

所有產品都有一個唯一的ID,所以'products.id'分組不會任何有用的。也許你的意思是'pricing_histories.product_id'? –

+0

@MaxWilliams我也試過這個,但還沒有得到預期的結果。 –

回答

0

你可以做到這一點,如下所示:

PricingHistory.joins(:product).group('products.id')。order('pricing_histories.percent_off DESC')