Предложение where с несколькими критериями - PullRequest
0 голосов
/ 26 мая 2020

Я хотел бы вывести уникальных сотрудников, у которых нет номера телефона, из столбца «OTHER_COMMUNIC_NUM». Имейте в виду, что, когда вам нравится, в столбце «OTHER_COMMUNIC_ C» отображаются числа 1,7,8, которые представляют сотовый телефон, домашний и рабочий телефон.

Мой запрос извлекает все нули в пределах (1 , 7,8), но я хочу исключить того, у кого есть номер телефона из этого выбора:

select  PAT_ID
, LINE
, OTHER_COMMUNIC_C
, OTHER_COMMUNIC_NUM 
from OTHER_COMMUNCTN 
where OTHER_COMMUNIC_C in (1,7,8)  and OTHER_COMMUNIC_NUM  is null**

** таблица

PAT_ID  LINE    OTHER_COMMUNIC_C    OTHER_COMMUNIC_NUM
Z10000  1         7                  957-407-5442
Z10000  2         8                  NULL
Z10000  3         1                  NULL
Z100000 1         7                  651-431-1879
Z100000 2         8                  651-431-1879
Z100000 3         1                  NULL
Z10000001         7                  856-625-6979
Z10000002         8                  NULL
Z10000003         1                  856-625-6979

1 Ответ

0 голосов
/ 26 мая 2020

Я думаю, вы имеете в виду следующее:

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

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