我有这张桌子(例如)

    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/

10-11 20:11