Просто для пояснения - должны появиться все записи из TABLE_A, если только в таблице B нет строк со статуями , отличных от , отличных от 'D'?
Вам потребуется хотя бы один ненулевой столбец на B (в качестве примера я буду использовать B.ID, и этот подход должен работать):
SELECT TABLE_A.EMPNO
FROM TABLE_A
LEFT OUTER JOIN TABLE_B ON
(TABLE_A.EMPNO = TABLE_B.EMPNO)
AND (TABLE_B.STATUS <> 'D' OR TABLE_B.STATUS IS NULL)
WHERE
TABLE_B.ID IS NULL
То есть измените логику, о которой вы могли подумать - присоединитесь к TABLE_B только там, где есть строки, которые исключают записи TABLE_A, а затем используйте IS NULL в конце, чтобы исключить их. Это означает, что включаются только те, которые не соответствуют (те, у которых нет строки в TABLE_B или только строки 'D').
Альтернативой может быть
SELECT TABLE_A.EMPNO
FROM TABLE_A
WHERE NOT EXISTS (
SELECT * FROM TABLE_B
WHERE TABLE_B.EMPNO = TABLE_A.EMPNO
AND (TABLE_B.STATUS <> 'D' OR TABLE_B.STATUS IS NULL)
)