我需要帮助来查找我的代码中关于逻辑错误的问题,我无法弄清楚为什么会发生这种情况,下面是我的代码:
$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。它并不是这样相加的。
最佳答案
我认为你可能需要使用类似的东西:
SUM(a.MON_BILL)+SUM(a.TUE_BILL)+SUM(a.WED_BILL)+SUM(a.THU_BILL)+SUM(a.FRI_BILL) AS conhours
关于php - 应用 GROUP BY ID 时 SUM 添加不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21451999/