2013-02-20 9 views
7

私は在庫データベースを構築しており、グループ化する2つの列(製造元とモデル)があります。これらの列でグループ化し、アイテムグループの合計をどのようにして得ますか?例えば2列でグループ化し、グループ化されたアイテムの合計を提供する方法

Qty Manufacturer Model 
1 Sony   MF-2002 
1 Sony   MF-2002 
1 Planar  PL2410W 
1 Planar  PL2410W 
1 Planar  PL2410W 
1 Planar  PL3610D 
1 Planar  PL3610D 

結果:次のように

Qty Manufacturer Model 
2 Sony   MF-2002 
3 Planar  PL2410W 
2 Planar  PL3610D 

答えて

9

Itemモデルを仮定すると、あなたはgroupメソッドに配列を渡すことができます。

Item.group(["manufacturer", "model"]).sum(:qty) 
# => {["Planar", "PL2410W"]=>3, ["Planar", "PL3610D"]=>2, ["Sony", "MF-2002"]=>2} 
関連する問題