sql - SQL 逻辑检查
问题描述
我是 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 的查询中,我想返回“所有其他排列”的计数,如上所述。
“x”指的是表中的唯一 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')
推荐阅读
- mongodb - 构建我的 mongodb 集合的最佳方法是什么
- reactjs - React - 为什么 Google Analytics 的文档标题不更新?
- ios - 使用 NMSSH 库从 SFTP 下载文件时出现问题
- javascript - 如何制作显示反转输入的文本框
- android - Kivy:[WindowSDL] 未找到正在运行的应用程序,退出
- material-ui - 自定义主题 - 自定义嵌套组件
- nginx - 拒绝将表单数据发送到“域”,因为它违反了以下内容安全策略指令
- r - 如何正确关闭 R 的一个实例以正确安装 tidyverse 包(没有错误)?
- javascript - 相位器 3 上未定义噪声(柏林噪声)
- java - QueryDSL - 在 FROM 语句中添加子查询 (2021)