我想获取具有
状态的员工'A-->Active'
L-->Inactive
T-->terminated
此状态已在表lookup_table
中定义。对于Active和Inactiev状态,没有其他条件,但是对于终止状态,有一个条件是term_date可以在今天和过去7天之间。如何将这些条件加入到一个查询中。我写的查询是: -
For active active inactive simply :-
select emp_no , full_name
from people_table pt,
lookup_table lt
where lookup_table_type='ASGN'
and pt.assignment_id=lt.code
and lookup_code in ('A','I')
For terminated :-
select emp_no , full_name
from people_table pt,
lookup_table
where lookup_table_type='ASGN'
and lookup_code in ('T')
and term_date between sysdate and sysdate-7
and pt.system_person_type='EX_EMP'
如何在不使用union的情况下将这两个查询合并为一个。
答案 0 :(得分:2)
select emp_no , full_name
from people_table pt,
lookup_table
where lookup_table_type='ASGN'
and (
lookup_code in ('A','I')
or (
and lookup_code in ('T')
and term_date between sysdate and sysdate-7
and pt.system_person_type='EX_EMP' ) )
但我猜你没有向我们展示完整的代码。
答案 1 :(得分:1)
要“合并”,请在您的位置使用OR
并获得相同的效果。
像这样:
select emp_no , full_name
from people_table pt,
lookup_table lt on pt.assignment_id=lt.code
where lookup_table_type='ASGN'
and (
lookup_code in ('A','I')
OR
(lookup_code in ('T')
and term_date between sysdate and sysdate-7
and pt.system_person_type='EX_EMP')
)