2012-08-17 71 views
0

我使用Rails & MySQL中,在那一刻,我的數據表明這樣的觀點:Rails的GROUP_BY總量

Customer A, 5 
Customer B, 3 
Customer C, 2 
Customer A, 2 
Customer B, 4 

我想讓它顯示是這樣的:

Customer A, 7 
Customer B, 7 
Customer C, 2 

目前我.html.erb看法是這樣的:

<% @licenses.each do |l| %> 
<tr> 
    <td><%= l.customer.companyname %></td> 
    <td><%= l.customer.licensecontact %></td> 
    <td><%= l.amount %></td> 
    </td> 
</tr> 
<% end %> 

我敢肯定,我需要後添加的東西10我只是不確定是什麼?

+0

嗨卡拉,你需要更新你的查詢。即從你從哪裏獲取'@ licenses'檢查我的編輯答案 – Salil 2012-08-17 09:51:36

回答

2

從你提供的信息非常少,我認爲你必須使用GROUP BY

SELECT customer, SUM(quantity) AS quantity FROM orders GROUP BY customer 

使用Rails 3

Order.select("customer, SUM(quantity) AS quantity").group("customer") 

使用Rails 2#這將在Rails 3的工作,以及

Order.find(:all, :select => "customer, SUM(quantity) AS quantity", :group => "customer") 

EDITED

你必須fetcth記錄在類似下面的方式

@licenses = License.find_by_sql("SELECT c.companyname, c.licensecontact, SUM(l.amount) 
            FROM licenses l 
            LEFT JOIN customers c ON c.id=l.customer_id 
            GROUP BY c.companyname, c.licensecontact") 

更改您查看到以下

<% @licenses.each do |l| %> 
<tr> 
    <td><%= l.companyname %></td> 
    <td><%= l.licensecontact %></td> 
    <td><%= l.amount %></td> 
    </td> 
</tr> 
<% end %> 
+0

更新我的問題:) – 2012-08-17 09:50:24

+0

好吧我把它放在我的控制器中,並得到了這個錯誤:'字段列表'中的Mysql2 ::錯誤:未知列'公司名': SELECT companyname,licensecontact,SUM(amount)AS amount FROM'licenses'GROUP BY companyname,licensecontact' – 2012-08-17 09:54:23

+0

對不起,我忘記了這個關聯,你必須使用'LEFT JOIN',再次檢查'find_by_sql'上面的查詢 – Salil 2012-08-17 09:57:19