【发布时间】:2020-05-29 13:49:18
【问题描述】:
我编写了一个查询来从表中获取活跃和不活跃的员工-
select papf.name,papf.empl_id,papf.assignment_status_type
from per_all_people_f papf,
per_periods_of_service ppos
where papf.person_id = ppos.person_id
AND (ppos.ACTUAL_TERMINATION_DATE is null or trunc(ACTUAL_TERMINATION_DATE) BETWEEN TO_CHAR (:from_date,
'YYYY-MM-DD') AND TO_CHAR (:TO_DATE, 'YYYY-MM-DD'))
AND ASSIGNMENT_STATUS <> 'Terminated - No Payroll'
此查询将获取所有 ACTIVE 和 INACTIVE 分配(终止 - 符合薪资条件)。我希望仅在过去的日期(即 :from_date 和 :to_date 以及所有 ACTIVE 分配)获取非活动分配/终止工资单合格分配状态。
我添加了一个条件:actual_termination_date is between these dates to pick the Terminated-Payroll 符合条件,或者对于活动分配它为空,但即使实际_termination_date 不在这些日期内,此查询也会获取符合条件的 Terminated-Payroll。
只需添加符合条件的 Terminated-Payroll 对应 INACTIVE IN papf.assignment_status_type
【问题讨论】:
-
请提供样本数据和期望的结果。为什么您选择不使用正确、明确、标准、可读的
JOIN语法?
标签: sql oracle oracle-sqldeveloper