首页 > 解决方案 > 包括终止员工 6 个月内的日期,同时仍显示在职员工 SQL Server

问题描述

我试图在我的查询中包括终止日期在 6 个月之前的任何员工,同时还包括在职员工。我已经包括了以下内容,但这样做会过滤掉活跃的员工。我怎样才能做到这一点?

JOIN Employees1 e
    ON e.ClientID = c.ClientID
JOIN Employees2 d
    ON d.ClientID = e.ClientID
    AND d.EmployeeUID = e.EmployeeUID
    AND TerminationDate >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6,current_timestamp)), 0)

另外,有没有办法回到当前日期前 6 个月的确切日期,而不是包括 6 个月前的整个月份?

标签: sql-serverjoinfilterssms

解决方案


如果您只想要活跃或满足条件的员工,则ORFROM子句中使用:

select e.*
from employees e
where e.TerminationDate >= DATEADD(month, -6, current_timestamp) OR
      e.TerminationDate IS NULL;

推荐阅读