Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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_Plsql - Fatal编程技术网

Sql 合并两个查询而不使用并集

Sql 合并两个查询而不使用并集,sql,oracle,plsql,Sql,Oracle,Plsql,我想找在公司有地位的员工 'A-->Active' L-->Inactive T-->terminated 此状态已在表查找表中定义。对于“活动”和“不活动”状态,没有其他条件,但对于“终止”状态,有一个条件,即“终止日期”可以介于今天和过去7天之间。如何将这些条件合并到一个查询中。我写的问题是:- For active active inactive simply :- select emp_no , full_name from people_table pt, loo

我想找在公司有地位的员工

'A-->Active'
L-->Inactive
T-->terminated
此状态已在表
查找表
中定义。对于“活动”和“不活动”状态,没有其他条件,但对于“终止”状态,有一个条件,即“终止日期”可以介于今天和过去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的情况下将这两个查询合并为一个查询

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' ) )
但我猜你没有给我们看完整的代码

但我猜你没有给我们看完整的代码

但我猜你没有给我们看完整的代码

但是我猜你没有给我们看完整的代码。

要“合并”,在where中使用
,你会得到同样的效果

像这样:

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')
      )
要“合并”,请在where中使用
,您将获得相同的效果

像这样:

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')
      )
要“合并”,请在where中使用
,您将获得相同的效果

像这样:

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')
      )
要“合并”,请在where中使用
,您将获得相同的效果

像这样:

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')
      )


这些问题真的没有意义。每个表中没有匹配的行。两行都从同一个表中获取员工详细信息。。。。。。仅使用lookup_代码't'就有其他条件。从本质上讲,第一个查询似乎是在两个表之间进行笛卡尔乘积。这通常不是人们想要的。我已经修改了我的代码。。。希望现在一切正常您希望查询中有行还是两个都有行?这些查询没有意义。每个表中没有匹配的行。两行都从同一个表中获取员工详细信息。。。。。。仅使用lookup_代码't'就有其他条件。从本质上讲,第一个查询似乎是在两个表之间进行笛卡尔乘积。这通常不是人们想要的。我已经修改了我的代码。。。希望现在一切正常您希望查询中有行还是两个都有行?这些查询没有意义。每个表中没有匹配的行。两行都从同一个表中获取员工详细信息。。。。。。仅使用lookup_代码't'就有其他条件。从本质上讲,第一个查询似乎是在两个表之间进行笛卡尔乘积。这通常不是人们想要的。我已经修改了我的代码。。。希望现在一切正常您希望查询中有行还是两个都有行?这些查询没有意义。每个表中没有匹配的行。两行都从同一个表中获取员工详细信息。。。。。。仅使用lookup_代码't'就有其他条件。从本质上讲,第一个查询似乎是在两个表之间进行笛卡尔乘积。这通常不是人们想要的。我已经修改了我的代码。。。希望现在一切正常。您希望查询中的行同时存在还是同时存在?不起作用。。。只有那些员工带着“A”status@user3809240-哈哈,你修改了问题中的代码。好的,等一下,不工作了。。。只有那些员工带着“A”status@user3809240-哈哈,你修改了问题中的代码。好的,等一下,不工作了。。。只有那些员工带着“A”status@user3809240-哈哈,你修改了问题中的代码。好的,等一下,不工作了。。。只有那些员工带着“A”status@user3809240-哈哈,你修改了问题中的代码。好的,等一下。