2016-02-27 28 views
1

大家好!使用MYSQL和SUM功能生成月度報表

我在生成每月報告時遇到問題......這裏是數據。

id:1
姓名:John Doe
時間:5分鐘。 00秒。

id:2
姓名:John Doe
時間:15分鐘。 00秒。

id:3
姓名:Van Helsing
時間:10分鐘。 00秒。

結果是

李四
總時間:0小時。 30分鐘。

這意味着加總的這三個時間,這不是我的目標結果..它必須是:

李四
總時間:20分鐘。 00秒。

範海辛
總時間:10分鐘。 00秒。

,這裏是我的查詢:

SELECT pd.firstname, pd.lastname, pd.middlename, SUM(p.hoursDiff) as totalHr, SUM(p.minDiff) as totalMin, SUM(p.secDiff) as totalSec 
FROM request_pass_slip r 
JOIN pass_slip p ON p.request_id=r.request_id 
JOIN pds pd ON pd.info_id=r.info_id 
WHERE YEAR(r.request_date)=2016 AND MONTH(r.request_date)=2 AND pd.emp_type='JO' 

這裏的代碼導致錯誤:

SUM(p.minDiff) as totalMin, SUM(p.secDiff) as totalSec 

誰能幫助我?只是我沒有選擇...我找不到正確的查詢。

+0

添加,作爲最後一行,'GROUP BY pd.firstname,pd.lastname,PD。 middlename'。 –

回答

1

如果您希望將結果按人物分組,您需要使用GROUP BY

添加到您的查詢末GROUP BY pd.firstname, pd.lastname, pd.middlename

沒有它,和適用於整個結果集

+0

它的工作原理!但有一個問題出現......大概是幾秒鐘...在測試運行後,我遇到了4分鐘。 76秒它必須5分鐘。 16秒 – MeSH