2013-03-09 53 views
0

我有一个包含分配表和员工表的数据库。每个表格都包含员工ID。多名员工在同一个项目上工作,我需要能够获得每个项目ID和工作时间的员工姓名列表。我尝试了以下,但它不能正常工作。查找所有员工的姓名和每个项目的工作时间ID

Select FirstName, LastName, ProjectID, HoursWorked 
From employee e, assignment a 
Where e.EmployeeNumber = a.EmployeeNumber 
Group by projectID; 

编辑:第一个答案之后,我改变了查询到这一点:

SELECT FirstName, LastName, ProjectID, HoursWorked 
FROM employee e, assignment a 
Where e.EmployeeNumber = a.EmployeeNumber 
GROUP BY ProjectID, FirstName, LastName; 

,结果是罚款,我不完全理解的部分,我想该组。

回答

1

您需要使用聚合函数SUM()为了得到列的总价值,

SELECT FirstName, 
     LastName, 
     ProjectID, 
     SUM(HoursWorked) totalHoursWorked 
FROM employee e 
     INNER JOIN assignment a 
      ON e.EmployeeNumber = a.EmployeeNumber 
GROUP BY FirstName, LastName, ProjectID 
+0

让我们从视@ downvoter的观点听到。 ':)' – 2013-03-09 22:15:33

+0

那么,小时工的价值实际上已经是一个合计。您的查询工作,但简单地添加名字和姓氏到我的小组通过返回完全相同的东西......我不明白为什么完全,但我想这就是我错过了。 – SixTwentyFour 2013-03-09 22:18:30

+0

[MySQL扩展到GROUP BY](http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html) – 2013-03-09 22:22:03

相关问题