从三个表中提取数据;尝试列出员工正在从事的项目的项目编号、项目名称和工作时间

Pulling data from three tables; Attempting to list project number, project name, and hours worked for projects on which the employee is working

虽然这是来自一项作业,关于我是否应该列出员工标识符的说明并不清楚,但我假设我应该这样做(除非有人有其他解释?)。

这是我目前拥有的代码:

select e.ssn, p.pnumber, p.pname, count(hours) hours_worked
from works_on w
inner join project p on w.pno = p.pnumber
inner join employee e on w.essn = e.ssn
group by e.ssn, p.pnumber, p.pname
order by e.ssn, hours_worked desc;

我得到一个列表,显示每个项目的所有员工,但 hours_worked 始终为 1。我试图从 works_on table 中的小时数列开始计算,但是它似乎不起作用。

提前感谢您的帮助!

你可能需要总和

select e.ssn, p.pnumber, p.pname, sum(hours) hours_worked
from works_on w
inner join project p on w.pno = p.pnumber
inner join employee e on w.essn = e.ssn
group by e.ssn, p.pnumber, p.pname
order by e.ssn, hours_worked desc;

count 用于获取列中包含的值的非空出现次数