0

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

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

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

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

谢谢!!!!!

4

3 回答 3

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
于 2013-03-04T21:44:09.303 回答
3

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

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

首先,您想了解基本的SQL 运算符。然后你会发现你想要的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 选择问题”,这可以在单个语句中完成,正如您希望已经解决的那样。

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

于 2013-03-04T21:45:16.440 回答
2

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

SELECT *, (dev_time+pm_time) AS total FROM table_name
于 2013-03-04T21:43:47.000 回答