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