循环通过SQL表并在PHP中计算数字

时间:2013-03-04 21:39:03

标签: php sql database database-table

我有一个看似简单的问题,但我无法锻炼如何做到这一点。

Employee id | dev_time | pm_time
1           |    4     |    5
2           |    2     |    3
3           |    6     |    2
2           |    3     |    6
3           |    4     |    4
1           |    1     |    5

我的localhost上有一个表,看起来像这样。如何找出每位员工花费的总时间(dev_time + pm_time)?我需要SQL语句和while / for / foreach循环解决方案

  

例如,employee_id 1总共花了15个小时,或者employee_id 2花费了总共14个小时

感谢!!!!!

3 个答案:

答案 0 :(得分:4)

试试这个:

  select employee_id, sum(dev_time + pm_time) as totalhours
    from mytable
group by employee_id

示例输出(DEMO):

EMPLOYEE_ID | TOTALHOURS
1             15
2             14
3             16

答案 1 :(得分:3)

I require both the SQL statement and the while/for/foreach loops solution

我有一些坏消息要告诉你。而不是直接的代码,我会给你一些链接,这样你就可以自己解决这个问题。

首先,您要查看基本的SQL Operators。然后你会看到你希望获得所需效果的SQL语句并不是很难自己推断出来。

其次,我会给你文字描述:

Query all tuples from the database

Loop through each one, first grabbing their dev_time value, and summing it with their pm_time value.

Store the sum value somewhere

正如Conrad Friz所提到的,这种文本描述可能会导致“N + 1选择问题”,这可以在一个声明中完成,正如您希望的那样。

希望您采用这种方法,而不是简单地复制和粘贴代码。

答案 2 :(得分:2)

您可以在SQL中直接执行此操作,我不确定您使用的是哪个DBMS,但在MySQL中它是:

SELECT *, (dev_time+pm_time) AS total FROM table_name