我有一个需要执行的查询,但我不知道该如何构造。
我有一张叫员工的表。我有另一个表,称为公司。第三个表称为"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/