SQL计数(选择)查询

杰西卡布

我正在使用sql查询来执行以下操作:

对于每个项目,检索项目编号,项目名称,从事该项目的员工人数。

这是我到目前为止的内容:

select pno, pname, 
    count(select fname from

    employee inner join works_on
    on employee.ssn=works_on.essn 

    inner join project 
    on works_on.pno=project.pno)

as  num_emp from project

这给了我这个错误:

1064-您的SQL语法有误;检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第1行“从employee.ssn = works_on.essn inn的员工内部加入works_on中选择fname”附近使用

我假设这意味着我无法将select语句放入count函数中,但是我看不到如何执行此操作

附件是我的架构

IS图

固态硬盘

我会这样做,将您希望员工计数的项目详细信息分组:

SELECT
    pno,
    pname,
    COUNT(employee.snn) AS num_emp
FROM
    project
INNER JOIN
    works_on
    ON works_on.pno = project.pno
INNER JOIN
    employee
    ON employee.ssn = works_on.essn
GROUP BY
    pno,
    pname;

编辑:

实际上,如果您要列出未分配员工的项目,则可以通过执行以下操作使原始查询更正确:

SELECT
    pno,
    pname,
    (
        SELECT
            COUNT(fname)
        FROM
            employee
        INNER JOIN
            works_on
            ON employee.ssn = works_on.essn 
        WHERE
            works_on.pno = project.pno
    ) AS num_emp
FROM
    project;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章