如何查找没有1名员工进行搜索的公司?

我试图找出如何解决问题的sql语句(然后我需要将其转换为EF Core Lambda,然后我不确定该怎么做)。

问题

必须在最近的x天内找到所有通过某些“ TrackingEvents”过滤的非活跃公司

表格

Companies
- Id
- Name

Branches
- Id
- Name
- CompanyId

Employees 
- Id
- Name
- BranchId

Tracking
- Id
- EmployeeId (nullable...there is tracking for non members)
- Name
- TrackingEventId

TrackingEvents
- Id
-Name

尝试

SELECT        Companies.Name
FROM            Branches INNER JOIN
                         Companies ON Branches.CompanyId = Companies.Id INNER JOIN
                         Employees ON Branches.Id = Employees.BranchId Left JOIN
                         Trackings ON Employees.Id = Trackings.EmployeeId
                         where Trackings.Id IS NULL
                         group by Companies.Name

我没有尝试按日期或跟踪事件进行过滤。

我认为我做的不对,因为如果公司中有1名员工没有进行搜索,那么公司将被退回。

我需要做的是以某种方式将所有员工,所有分支机构归为一组。因此,如果1名员工符合条件,则“公司”将被跳过。

hope1109 回答:如何查找没有1名员工进行搜索的公司?

尝试一下:

select distinct Id,Name From Companies c 
inner join Branches b on c.Id = b.CompanyId
inner join Employees  e on b.Id = e.BranchId
where not exists
(Select 1 From Tracking t where t.EmployeeId = e.Id)

让我知道

,

这将返回过去7天没有跟踪事件的公司

select companies.Name
from Companies
left join
    (select b.CompanyID
     from branches b
     join employees e on e.branchID = b.id
     join tracking t on t.EmployeeID = e.id
     where [eventDate] > dateadd(day,-7,getdate())
     ) l on l.CompanyID=Companies.ID
where l.CompanyID is null
group by companies.Name
本文链接:https://www.f2er.com/3048691.html

大家都在问