Здесь на помощь приходят аналитические функции:
SELECT part_no,
<other columns>
FROM (SELECT part_no,
<other columns>,
max(CASE WHEN transaction_code IN ('NISS', 'NREC') THEN 1 ELSE 0 end) OVER (PARTITION BY part_no) invalid_code_present
FROM inventory_transaction_hist_tab)
WHERE invalid_code_present = 0;
Подзапрос находит максимальное значение 1 для каждого part_no, если любая из строк для этого part_no имеет код транзакции NISS или NREC. Это значение возвращается для всех строк.
Затем внешний запрос фильтрует результаты, чтобы включить только строки part_no, в которых нет строк с исключенными кодами транзакции.
N.B. Я предположил, что вам нужно больше информации из строк, чем просто part_no. Если это не так, то агрегированный запрос должен помочь:
SELECT part_no
FROM inventory_transaction_hist_tab
GROUP BY part_no
HAVING MAX(CASE WHEN transaction_code IN ('NISS', 'NREC') THEN 1 ELSE 0 END) = 0;