SQL 逻辑检查

SQL Logic Check

我是 SQL/Teradata 的新手。我从第二次查询中得到的数字不是我预期的,这让我相信我做错了什么。

我有两个条件要统计:

条件一:

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 的查询中,我想 return 计算 "all other permutations" 如上所述。

'x'指的是table.

内唯一的Id号

非常感谢任何帮助。

您想否定第一个条件,那么做:

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')