2013-04-04 55 views
1

如何使用一个sql命令获得显示此表中多个名称的sum(hours)的输出?基于多个值的SQL求和输出

基于下表,理想的输出将是例如(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 ^如果你想要所有的人,可以把你的名字和可能的日期包裹一遍。 – Scotch 2013-04-04 03:13:37

+0

感谢大家的快速回复。现在都在工作。解答所有问题 – Rhys 2013-04-04 03:26:37

回答

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 2013-04-04 03:25:56

+0

@Rhys - 没问题,很高兴我们可以帮忙! – sgeddes 2013-04-04 03:27:22

3

您将添加一个GROUP BY。使用带有GROUP BY沿聚合函数会给你为每个不同名称的结果,你有在表:

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;