SQL 查询员工入职日期和离职日期之间的数据

标签 sql sql-server

我有一名员工已加入两次。请查看下表。

EmpID    EmpName    DateOFJoin    DateOfLeaving    Status
1         XYZ       2015-10-01    2017-09-26       De-Active
2         ABC       2018-01-01                     Active                      
3         XYZ       2018-10-15                     Active     

我想要像这样的输出 例如, 我有 FromDate 和 ToDate,例如“2019-12-01”和“2019-12-31”

EmpID    EmpName    DateOFJoin    DateOfLeaving    Status
2         ABC       2018-01-01                     Active 
3         XYZ       2018-10-15                     Active 

如果我有像“2017-08-01”和“2017-09-30”这样的 FromDate 和 ToDate

EmpID    EmpName    DateOFJoin    DateOfLeaving    Status
1         XYZ       2015-10-01    2017-09-26       De-Active

如果我有 FromDate 和 ToDate,例如“2018-01-01”和“2018-03-31”

EmpID    EmpName    DateOFJoin    DateOfLeaving    Status
2         ABC       2018-01-01                     Active  

请帮忙准备SQL。

最佳答案

使用coalesce()函数

<强> DEMO

select EmpID,EmpName,DateOFJoin,DateOfLeaving,Status
from tablename
where DateOFJoin<=param1 and coalesce(DateOfLeaving,param2)>=param2

关于SQL 查询员工入职日期和离职日期之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54900058/

相关文章:

sql - 从每行查询结果中选择数据

c# - 存在数据时添加 ID 列的简便方法

sql-server - PowerBI - 如何改进使用 DirectQuery 时发送到 SQL Server 的查询?

sql - IF ELSE 为join 的条件?

mysql - 多列的 SQL 平均值

java - hibernate :Cannot add or update a child row: a foreign key constraint fails

sql - 按照插入的确切顺序返回行

sql - 哪种 MySQL JOIN 查询效率更高?

mysql - 这是将 MySQL 表上的字符集更改为 UTF-8 的安全方法吗

.net - 是否可以使用 SqlException.LineNumber 来识别异常是否与连接相关?