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

我有一张叫员工的表。我有另一个表,称为公司。第三个表称为"file"。可以想象,公司有员工,而员工有文件。

我需要列出数据库中的所有员工。挑战在于,我需要列出与员工在同一家公司中的文件总数。我在以下方面尝试了各种变体,但没有任何运气:

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

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

最佳答案

尝试这个:

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

关于sql - SQL Server 2005-嵌套递归查询:(,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1633351/

10-11 16:57