2014-01-30 33 views
0

我需要尋求幫助什麼是錯在我對於我無法弄清楚爲什麼會發生邏輯錯誤代碼,下面是我的代碼:SUM添加不正確時GROUP BY ID的應用

$consultants = mysqli_query($con,"SELECT a.ID, a.USER_ID, a.TASK_ID, SUM(a.MON_BILL+a.TUE_BILL+a.WED_BILL+a.THU_BILL+a.FRI_BILL) AS conhours, a.DELETE_WEEK, b.ID, b.NAME, b.LAST_NAME, c.REF, SUM(c.EXPENSE_COST) AS consultantexpenses, c.DELETE_WEEK FROM b_report_week a INNER JOIN b_user b ON a.USER_ID = b.ID INNER JOIN b_report_expense2 c ON a.ID = c.REF WHERE a.DELETE_WEEK = 0 AND c.DELETE_WEEK = 0 GROUP BY a.USER_ID"); 
while($row = mysqli_fetch_array($consultants)) 
{ 
$conFN = $row['NAME']; 
$conLN = $row['LAST_NAME']; 
$totalConHours = $row['conhours']; 
$totalConExpenses = $row['consultantexpenses']; 

print "<tr><td>".$conFN." ".$conLN."</td><td>".$totalConHours."</td><td>".$totalConExpenses."</td>"; 

} 

即不加入正確的部分是這部分:

SUM(a.MON_BILL+a.TUE_BILL+a.WED_BILL+a.THU_BILL+a.FRI_BILL) AS conhours 

基本上有每五列與值和多個行。行中也有USER_ID,所以我想在USER_ID相同的這些列中添加所有值。在我的聲明結尾處將GROUP BY設置爲a.USER_ID,這是正確的。

奇怪的是,有些數字是正確的,但有些數字卻並非真正令人困惑。我已經從數據庫中獲得了電子數據表來添加正確的數字,這就是我知道一些是正確的,有些是錯誤的。

任何幫助表示讚賞。

例:

USER_ID | MON_BILL | TUE BILL | WED_BILL | THU_BILL | FRI_BILL 
24  | 8   | 8   | 8   | 8   | 8 
24  | 8   | 8   | 8   | 8   | 8 
24  | 8   | 8   | 8   | 8   | 8 
20  | 8   | 8   | 8   | 8   | 8 
20  | 8   | 8   | 8   | 8   | 8  

所以USER_ID 24總學時應該等於:120,而USER_ID 20 = 80。它不添加它這樣。

+1

請爲正確和不正確的結果提供的示例數據和示例查詢。 – Alexander

+0

你不能總結那樣在mysql總和單獨然後所有得到所有總計和總結在php或爲了指導學習'http:// www.w3schools.com/sql/sql_func_sum.asp' –

+0

您確定,沒有NULL在這些列中的任何一列? 'NULL +1 = NULL' –

回答

0

我想你可能需要使用類似:

SUM(a.MON_BILL)+SUM(a.TUE_BILL)+SUM(a.WED_BILL)+SUM(a.THU_BILL)+SUM(a.FRI_BILL) AS conhours