SQL Server 2005 - 嵌套递归查询:(

use*_*192 2 sql sql-server sql-server-2005 correlated-subquery

我有一个我需要执行的查询,我不知道如何构造.

我有一张名为Employees的桌子.我还有另一张叫做公司的桌子.还有第三个名为Files的表.您可以想象,公司有员工,员工有文件.

我需要列出我数据库中的所有员工.面临的挑战是,我需要列出与员工在同一公司中的文件总数.我试过以下的变种而没有任何运气:

SELECT
  e.FirstName,
  e.LastName,
  e.Company,
  (SELECT COUNT(*) FROM Files f WHERE f.EmployeeID IN (SELECT [ID] FROM Employees e2 WHERE e2.CompanyID=e.CompanyID)) as 'FileCount'
FROM
  Employees e
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢!

Kip*_*Kip 5

试试这个:

SELECT
  e.FirstName,
  e.LastName,
  e.Company,
  (
    SELECT COUNT(*)
    FROM Files f
    JOIN Employees e2 ON f.EmployeeID = e2.id
    WHERE e2.CompanyID = e.CompanyID
  ) as 'FileCount'
FROM
  Employees e
Run Code Online (Sandbox Code Playgroud)