Объединение двух Oracle SQL запросов в один - PullRequest
0 голосов
/ 24 апреля 2020

Мне нужно объединить 2 условия запроса в одном операторе SQL. Я не могу их логически объединить.

1) Сотрудник, чей отпуск утвержден менеджером

select e.employee_name,r.request_from_Date,r.request_to_Date from  employee_leave e,emp_leave_request r
 where e.employee_id=r.request_from_id and e.employee_manager_id= r.request_to_id
 and r.request_Approved_date is not null
 and r.request_reject_Date is null
 and r.request_cancelled_Date is null;

2) Сотрудник, входящий в команду менеджера

 select employee_id, employee_name, employee_email, employee_username, employee_leave_normal, employee_contact_no,employee_designation
from employee_leave a
where exists(select 1 from employee_leave b where lower(b.employee_username)=lower(:APP_USER) and a.employee_manager_id=b.employee_id);

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы можете использовать INNER JOIN для достижения того же. Пожалуйста, узнайте, что такое INNER join здесь

        SELECT     e1.*,
               e.request_from_date,
               e.request_to_date
    FROM       (
                      SELECT e.employee_id,
                             e.employee_name,
                             r.request_from_date,
                             r.request_to_date
                      FROM   employee_leave e,
                             emp_leave_request r
                      WHERE  e.employee_id=r.request_from_id
                      AND    e.employee_manager_id= r.request_to_id
                      AND    r.request_approved_date IS NOT NULL
                      AND    r.request_reject_date IS NULL
                      AND    r.request_cancelled_date IS NULL)e
    inner join
               (
                      SELECT employee_id,
                             employee_name,
                             employee_email,
                             employee_username,
                             employee_leave_normal,
                             employee_contact_no,
                             employee_designation
                      FROM   employee_leave a
                      WHERE  EXISTS
                             (
                                    SELECT 1
                                    FROM   employee_leave b
                                    WHERE  Lower(b.employee_username)=Lower(:APP_USER)
                                    AND    a.employee_manager_id=b.employee_id) e1
                      ON e.employee_id=e1.employee_id 
0 голосов
/ 24 апреля 2020

Используйте объединение, чтобы объединить 2 sql пример запросов: https://www.w3schools.com/sql/sql_union.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...