Нужно сосчитать отфильтрованных сотрудников - PullRequest
0 голосов
/ 20 сентября 2018

Я написал запрос, в котором необходимо отфильтровать данные о сотрудниках по их кодам сотрудников.Например, в моей таблице XYZ у меня 200 сотрудников, мне нужно вставить эти 200 сотрудников в таблицу ABC, но перед вставкой мне нужно проверить, все ли 200 сотрудников существуют в системе, я сначала отфильтруюсотрудника, а затем вставьте его в мою таблицу ABC.

предположим, что совпадает 180 из 200 сотрудников, затем я вставлю 180 в таблицу ABC.Теперь мне нужен счетчик 200-180=20, поэтому мне нужен счетчик разностей.

Я написал запрос, но он выбирает только совпадающую запись, а не счетчик тех сотрудников, которые отфильтровывают.

Select distinct SD.EMP_code 
FROm SALARY_DETAIL_REPORT_012018 SD  /*219 Employees*/
JOIN 
(SELECT * FROM EMPLOYEE) tbl
ON tbl.EMP_CODE=to_char(SD.EMP_CODE)
WHERE SD.REFERENCE_ID like '1-%';

final output : 213 employees

Я хочу 219-213 = 6 Я хочу этих 6 сотрудников.Я также попробовал INTERSECT, но получил тот же результат.

Select distinct to_char(SD.EMP_code) 
FROm SALARY_DETAIL_REPORT_012018 SD
WHERE SD.REFERENCE_ID like '1-%'
INTERSECT
SELECT EMP_CODE FROm EMPLOYEE;

ВЫХОД

213 Employees

Пожалуйста, помогите мне узнать количество отфильтрованных сотрудников

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

использование кроме опертаора

Select distinct to_char(SD.EMP_code) 
FROM SALARY_DETAIL_REPORT_012018 SD
WHERE SD.REFERENCE_ID like '1-%'
except
SELECT EMP_CODE FROm EMPLOYEE;
0 голосов
/ 20 сентября 2018

Вы можете использовать NOT EXISTS:

SELECT DISTINCT SD.EMP_code 
FROM SALARY_DETAIL_REPORT_012018 sd
WHERE NOT EXISTS (SELECT 1 FROM EMPLOYEE e WHERE e.EMP_CODE = TO_CHAR(SD.EMP_CODE)) AND
      SD.REFERENCE_ID LIKE '1-%';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...