2010-07-24 67 views
0

我的目標是做一個聚合函數(SUM)和組的元素,但有一個錯誤問題加入

這是所有我做的步驟

1 - 第一步驟 代碼

SELECT ca.question_id , ca.choice_0 ,ca.choice_1 ,ca.choice_2 ,ca.choice_3 ,ca.choice_4 ,q.headline_id FROM closed_answers ca 
       INNER JOIN questions q ON ca.question_id = q.id 
       INNER JOIN headline h ON q.headline_id = h.id 
       INNER JOIN forms f ON h.form_id = f.id 
       WHERE f.id = 2 

結果

http://img717.imageshack.us/img717/685/firststep.png


2 - 現在我想通過聚合標題ID的選擇和他們組,但是當我寫

SELECT sum(ca.choice_0) ,sum(ca.choice_1) ,sum(ca.choice_2) ,sum(ca.choice_3) ,sum(ca.choice_4) ,q.headline_id FROM closed_answers ca 

       INNER JOIN questions q ON ca.question_id = q.id 
       INNER JOIN headline h ON q.headline_id = h.id 
       INNER JOIN forms f ON h.form_id = f.id 
       GROUP BY q.headline_id 
       WHERE f.id = 2 

誤差

A Database Error Occurred 

Error Number: 1064 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE f.id = 2' at line 6 

SELECT sum(ca.choice_0) ,sum(ca.choice_1) ,sum(ca.choice_2) ,sum(ca.choice_3) ,sum(ca.choice_4) ,q.headline_id FROM closed_answers ca INNER JOIN questions q ON ca.question_id = q.id INNER JOIN headline h ON q.headline_id = h.id INNER JOIN forms f ON h.form_id = f.id GROUP BY q.headline_id WHERE f.id = 2 

PS:它的工作原理時,我通過關鍵字刪除組並將所有選項總和

http://img203.imageshack.us/img203/8186/secondstepx.png

回答

6

GROUP BY放在WHERE之後。