Я думаю, вы имеете в виду следующее:
select PAT_ID
from OTHER_COMMUNCTN
where OTHER_COMMUNIC_C in (1,7,8)
group by PAT_ID
having count(OTHER_COMMUNIC_NUM) = 0
Это дает вам все PAT_ID, где у них вообще нет номера телефона ни в одной из их записей типа 1, 7 или 8
Если вы имеете в виду «дайте мне все PAT_ID, где любая из их 1, 7 или 8 записей содержит нуль:
select PAT_ID
from OTHER_COMMUNCTN
where OTHER_COMMUNIC_C in (1,7,8)
group by PAT_ID
having
count(OTHER_COMMUNIC_NUM) < 3
вам может потребоваться убедиться, что вы проверяете только сотрудников, у которых есть 1 , 7 и 8 записи (т.е. сотрудник, имеющий только записи 1 и 7, игнорируется), что можно сделать, добавив AND sum(case OTHER_COMMUNIC_C WHEN 1 THEN 1 WHEN 7 THEN 2 WHEN 8 THEN 4 END) = 7
к вашему HAVING