从三个表中提取数据;尝试列出员工正在从事的项目的项目编号、项目名称和工作时间
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 用于获取列中包含的值的非空出现次数
虽然这是来自一项作业,关于我是否应该列出员工标识符的说明并不清楚,但我假设我应该这样做(除非有人有其他解释?)。
这是我目前拥有的代码:
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 用于获取列中包含的值的非空出现次数