查找具有最大员工SQL Server&列出员工的总工作天数

时间:2016-01-05 19:17:43

标签: sql-server database

我一直试图解决这个问题几个小时。 我想把最大的员工拿走,这就是我完成的工作。但由于某种原因我得到语法错误

    select title, count(A.employeeN)
from Project P, Allocation A
group by P.projectN
Having count(employeeN) = 
(select max(A.employeeN)
from (select count(A.employeeN) as employeeN_nbrofemployee
from Project P, Allocation A
where P.projectN = A.projectN
group by P.projectN));

下一个是列出员工(员工N,姓名,总日)及其总工作天数。 (总天数和employeeN在构造函数中)

2 个答案:

答案 0 :(得分:1)

就像这里的一个例子一样,这个查询可能看起来如何使用当前(在过去20年内)加入语法和一些格式。

select title
    , count(A.employeeN)
from Project P
join Allocation A ON P.projectN = A.projectN
group by P.projectN
Having count(employeeN) = 
(
    select max(x.employeeN_nbrofemployee)
    from 
    (
        select count(A.employeeN) as employeeN_nbrofemployee
        from Project P
        join Allocation A ON P.projectN = A.projectN
        group by P.projectN
    ) x --<<---- notice the alias here.
);

我现在的问题是你真的试图找到employeeN值的计数=特定雇员N的值的行吗?这似乎是一个逻辑问题,但我不确定你要做什么。

答案 1 :(得分:0)

您需要为嵌套的SELECT:

添加别名
select title, count(A.employeeN)
from Project P, Allocation A
group by P.projectN
Having count(employeeN) = 
(select max   (B.employeeN_nnrofemployee)
from (select count(A.employeeN) as employeeN_nbrofemployee
from Project P, Allocation A
where P.projectN = A.projectN
group by P.projectN) B);

至少应该对语法错误进行排序......