SQL Logi c Проверить - PullRequest
       27

SQL Logi c Проверить

0 голосов
/ 23 апреля 2020

Я новичок в SQL / Teradata. Числа, которые я получил во втором запросе, не соответствуют ожиданиям, и это заставляет меня поверить, что я что-то делаю не так.

У меня есть два условия, которые я хочу посчитать:

Условие 1:

owner_id= 'x'
AND
acct_mgr_user_id= 'x'

Условие 2 (все другие перестановки):

owner_id<> 'x'
acct_mgr_user_id= 'x'


owner_id= 'x'
acct_mgr_user_id<> 'x'


owner_id<> 'x'
acct_mgr_user_id<> 'x'

Запрос для условия 1:

SELECT Count(acct_id) FROM nr_sf_acct
WHERE owner_id= 'x'
AND acct_mgr_user_id= 'x'
AND is_sf_acct_del_y_n= 'n';

Я думаю, что это одно неправильно . , .

Запрос для условия 2

SELECT Count(acct_id) FROM nr_sf_acct
WHERE owner_id<> 'x'
OR acct_mgr_user_id<> 'x'
AND is_sf_acct_del_y_n= 'n';

В запросе для набора 2 я хочу вернуть счетчик для "всех других перестановок", как отмечено выше.

«x» относится к уникальному номеру в таблице.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 23 апреля 2020

Вы хотите отменить 1-е условие, так что:

WHERE (NOT (owner_id = 'x' AND acct_mgr_user_id = 'x')) AND (is_sf_acct_del_y_n = 'n')

или:

WHERE (owner_id <> 'x' OR acct_mgr_user_id <> 'x') AND (is_sf_acct_del_y_n = 'n')
...