2013-04-04 4 views
1

Как я могу получить вывод, который показывает sum(hours) для нескольких имен в этой таблице с помощью одной команды sql?SQL sum output на основе нескольких значений

Идеальный выход будет, например, (20, 70), основанный на приведенной ниже таблице, которая будет суммой часов для каждого человека в эту дату.

Текущий SQL.

SELECT sum(hours) from project_time where date = '04/07/2013' AND name = 'Rhys Parker' 

выше SQL дать результат я хочу, но его только для одного пользователей, я хотел бы получить выход для всех пользователей этой даты.

DB таблица:

db table

DB Состав: SQLITE

CREATE TABLE PROJECT_TIME (name VARCHAR(16), date DATE, project VARCHAR(16), hours VARCHAR(16), PRIMARY KEY (name, project, date)) 
+0

'G ROUP BY ваши имена и, возможно, дату, если вы хотите их всех. – Scotch

+0

Спасибо всем за быстрые ответы. Теперь все работает. Uptick для всех ответов – Rhys

ответ

2

Похоже, вы должны использовать GROUP BY:

SELECT name, sum(hours) 
FROM project_time 
WHERE date = '04/07/2013' 
GROUP BY name 

Это поможет вам сумму часов для каждого имени:

Rhys Parker 70 
Bob Smith 20 

SQL Fiddle Demo

+0

Спасибо, я не хотел названия, только часы, поэтому я удалил «имя», и он отлично работал. Кровавый блестящий помощник. Приветствия за быстрый ответ. – Rhys

+0

@Rhys - не проблема, рад, что мы могли бы помочь! – sgeddes

3

Вы добавить GROUP BY. Используя агрегатную функцию вместе с GROUP BY даст вам результат для каждого DISTINCT имя у вас есть в таблице:

SELECT name, sum(hours) TotalHours 
from project_time 
where date = '04/07/2013' 
GROUP BY name 

См SQL Fiddle with Demo

2

Вы хотите группу по:

SELECT name, sum(hours) 
from project_time 
where date = '04/07/2013' 
group by name 
1

Чтобы дать альтернативу, если вы хотите, чтобы на все даты, сделайте

SELECT name,date, sum(hours) as TotalHours 
    from project_time 
    GROUP BY name,date; 
Смежные вопросы