我有这张桌子(例如)
id userId totalHours isOt
1 1 0830 1
2 4 0630 0
3 1 0730 0
4 2 0900 1
我需要找到每个用户的totalHours,但应该为每个用户显示一次(分组依据)
然后,如果将totalHours授予OT(随着时间的推移== 1),totalHours减去0800小时之间的差额也应该相加并显示在另一列中。
我曾尝试将此表与用户表联接,但是循环看起来是如此错误,最终导致每个循环中的所有最后一个值总计到另一个。
希望会有任何人可以帮助您,感谢您的帮助
最佳答案
在数据库查询而不是PHP中执行此操作:
SELECT UserId,
SUM(totalHours) AS totalTime,
SUM(IF(isOt, totalhours-800, 0)) AS totalOt
FROM yourTable
GROUP BY UserId
关于php - 如何在while循环中汇总每个用户的总时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24592390/