我有一个看似简单的问题,但我无法锻炼如何做到这一点。
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个小时
感谢!!!!!
答案 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