如何获取在特定日期范围内活跃的在职员工列表(2014年1月1日至2014年3月31日)
我的桌子就像 表: 的 employeeheader
emphistory
如果enddate为null,则表示员工仍处于活动状态。
答案 0 :(得分:1)
SELECT * FROM employeeheader
JOIN emphistory ON employeeheader.empid = emphistory.empid
WHERE begindate <= <range_start> AND (enddate is null OR enddate >= <range_end>)
这使得所有员工在特定范围内完全工作。
答案 1 :(得分:0)
这样的事可能会奏效 - 我实际上没有测试过它。
where begindate < the day after your end date
and nvl(enddate, sysdate) >= your start date
由于oracle日期包含一天中的时间,因此您需要考虑它,以防万一。
答案 2 :(得分:0)
此查询可以提供帮助
SELECT * FROM employeeheader
WHERE empid IN
(SELECT empid FROM emphistory
WHERE (enddate IS NULL OR enddate>= EndDateParameter)
AND begindate<=BeginDateParameter)