Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取在特定日期范围内处于活动状态的员工_Sql_Oracle - Fatal编程技术网

Sql 获取在特定日期范围内处于活动状态的员工

Sql 获取在特定日期范围内处于活动状态的员工,sql,oracle,Sql,Oracle,我如何获得在2014年1月1日至2014年3月31日的特定日期范围内活跃的活跃员工名单 我的桌子像 表: 雇主主管 舞虻 名字 姓氏 经营历史 埃皮德 生 结束日期 如果enddate为空,则表示员工仍处于活动状态 SELECT * FROM employeeheader JOIN emphistory ON employeeheader.empid = emphistory.empid WHERE begindate <= <range_start> AND (enddate

我如何获得在2014年1月1日至2014年3月31日的特定日期范围内活跃的活跃员工名单

我的桌子像 表: 雇主主管

舞虻 名字 姓氏 经营历史

埃皮德 生 结束日期 如果enddate为空,则表示员工仍处于活动状态

SELECT * FROM employeeheader
JOIN emphistory ON employeeheader.empid = emphistory.empid
WHERE begindate <= <range_start> AND (enddate is null OR enddate >= <range_end>)

这给了所有在特定范围内完全工作的员工。

类似的东西可能会工作-我实际上没有测试它

where begindate < the day after your end date
and nvl(enddate, sysdate) >= your start date
由于oracle日期包括一天中的时间,因此您需要对其进行说明,以防万一。

此查询会有所帮助

SELECT * FROM employeeheader
WHERE empid IN
(SELECT empid FROM emphistory
 WHERE (enddate IS NULL OR enddate>= EndDateParameter) 
        AND begindate<=BeginDateParameter)