我需要获取给定输入employee_id和给定输入日期的id:
条件:我需要查询在输入中指定日期或指定日期之前登记的员工。
约束条件:员工在给定输入日期或之前不应具有“已取消登记”状态。
例如:如果employee_id为32456和32458,并且给定的输入日期为2021-01-01,则预期结果为employee_Id为32458的id值3。employee_Id(32456)不符合条件,因为他已在给定的输入日期或之前注销。
我有一个表,下面的列:
| 标识符|日期|状态|雇员标识|
| - -|- -|- -|- -|
| 一个|2021年1月1日|已登记|小行星32456|
| 2个|2021年1月1日|已取消注册|小行星32456|
| 三个|2020年1月1日|已登记|小行星32458|
以下是我所尝试的:
select a.ID
from EMPLOYEE a
where (a.employee_id='34526'
or a.employee_id = '32547')
and (
(a.status= 'enrolled'
and {d '2021-10-10'} >= p.date
)
or (a.status NOT IN 'disEnrolled'
and {d '2021-10-10'} <= a.date
)
);
2条答案
按热度按时间ibrsph3r1#
您可以使用简单的EXISTS子句来实现所需的结果-
但此查询将生成2条记录,分别为32457和32458,而不是仅生成32458。
olqngx592#