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

标签 sql sql-server sql-server-2005 correlated-subquery

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

我有一个名为 Employees 的表。我有另一个名为 Company 的表。还有第三个表称为文件。可以想象,公司有员工,员工有文件。

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

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 Server 2005 - 嵌套递归查询 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1633351/

相关文章:

sql - 需要有关条件 SELECT 语句的帮助

sql-server - 如何在 Sql Server 2005 上获取上次插入/更新/删除日期时间?

c# - 更改从asp.net中的sql查询接收到的文本

c# - 使用 SQL Server 存储数据

sql-server - 如何在SSRS中使用多值参数列表过滤列

sql - Management Studio 中的结果集列宽

c# - 带有替换单引号和验证整数的 SQL 注入(inject)

sql - 逗号分隔的 SQL 字符串 需要分隔

java - 将数据存储到sqlite

java - 在 SQL 中更新查询,在 Java 上运行时出现语法错误