2013-10-25 72 views
0

我運行一個流行的開源LMS所謂的Moodle其背後都有一個MySQL數據庫。我已經寫了返回和我們所有的員工的列表,他們的成績的9門必修課總稱爲IT策略課程功能查詢。這個想法是,如果他們有一個900,我知道他們已經通過了所有9,700意味着他們已經完成了7,等等。以下是該查詢。如何計算SUM的結果在MySQL

SELECT u.firstname AS 'First' , u.lastname AS 'Last', cc.name AS 'Category', 
ROUND(SUM(gg.finalgrade),0) AS Grade 
FROM prefix_course AS c 
JOIN prefix_context AS ctx ON c.id = ctx.instanceid 
JOIN prefix_role_assignments AS ra ON ra.contextid = ctx.id 
JOIN prefix_user AS u ON u.id = ra.userid 
JOIN prefix_grade_grades AS gg ON 
JOIN prefix_grade_items AS gi ON gi.id = gg.itemid 
JOIN prefix_course_categories AS cc ON cc.id = c.category 
WHERE gi.courseid = c.id AND cc.name = 'IT Policies' AND gi.itemtype = 'course' 
GROUP BY u.lastname,u.firstname 
ORDER BY grade 

我的問題是這樣的。我想要一個總結報告,記錄每個得分有多少人。例如102人有900 7人具有800,14人有700 0人有一個600,...,72人沒有分數在所有等

此查詢不除了得分和有多少人得分以外,還需要顯示任何內容。我已經爲此工作了幾天,並採取了一些方法。儘管我似乎無法做到。任何幫助將非常感激!

謝謝你, Harvy

+0

呃,這不是您的查詢。但無論如何,爲什麼「900」 =「過去了9」,而不是,比方說,「9」? – Strawberry

回答

0

保存查詢作爲視圖。然後在視圖上運行SQL查詢(如'marksheet'),如下所示:

SELECT Grade, COUNT(First) FROM marksheet GROUP BY Grade