Перебирая таблицу sql и вычисляя цифры в php
У меня есть простой вопрос, но я не могу понять, как это сделать.
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 часов
Спасибо!!!!!
3 ответа
Попробуй это:
select employee_id, sum(dev_time + pm_time) as totalhours
from mytable
group by employee_id
Пример вывода ( ДЕМО):
EMPLOYEE_ID | TOTALHOURS
1 15
2 14
3 16
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
Как упоминал Конрад Фриз, это текстовое описание может привести к "N+1 Выбор проблемы", и это можно сделать в одном утверждении, как вы, надеюсь, уже решили.
Надеюсь, вы воспользуетесь этим подходом, а не просто копируете и вставляете код.
Вы можете сделать это прямо в SQL, я не уверен, какую СУБД вы используете, но в MySQL это:
SELECT *, (dev_time+pm_time) AS total FROM table_name