【问题标题】:Pulling data from three tables; Attempting to list project number, project name, and hours worked for projects on which the employee is working从三个表中提取数据;试图列出员工正在从事的项目的项目编号、项目名称和工作时间
【发布时间】:2021-03-09 13:42:19
【问题描述】:

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

这是我目前拥有的代码:

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 表中的 hours 列中计数,但它似乎不起作用。

提前感谢您的帮助!

【问题讨论】:

    标签: sql count inner-join


    【解决方案1】:

    你可能需要总和

    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 用于获取列中包含的非空值出现的次数

    【讨论】:

    • 哦,我是哑巴哈哈哈非常感谢你!被困在这个问题上两天了——绝对让我很开心。再次感谢您!
    猜你喜欢
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    相关资源
    最近更新 更多