SELECT 带有 correlated/nested 子查询的语句

SELECT Statement with correlated/nested Subquery

我的数据库中有两个 table,DepartmentDepartmentErrorsDepartmentErrors table 包含一个名为 'Error

的列

我想 运行 关于 Department table 的 select 声明,匹配 DepartmentError 中该部门的任何相关事件,其中Error 值匹配一个数字。然后,我想为每个部门在该结果集上附加一列,其中包含在部门错误 table 中出现了多少行与该部门 ID 和错误值匹配的行。到目前为止,这是我的代码:

SELECT DISTINCT
    Department.DeptID,
    Name,
    Size,
    Location,
    (
        SELECT COUNT(*)
        FROM DepartmentErrors
        INNER JOIN Departments ON DepartmentErrors.DeptID = Departments.DeptID
        WHERE Error = 2
    ) AS ErrorCount
FROM Departments
INNER JOIN DepartmentErrors ON Departments.DeptID = DepartmentErrors.DeptID
WHERE DepartmentErrors.Error = 2

试试这个 -

SELECT d.DeptID,
       d.Name,
       d.Size,
       d.Location,
       e.ErrorCount
FROM Departments d
JOIN (
    SELECT DeptID, ErrorCount = COUNT(*)
    FROM DepartmentErrors
    WHERE Error = 2
    GROUP BY DeptID
) e ON d.DeptID = e.DeptID