sql - 显示符合条件的字段
问题描述
我正在处理一张表,我想在其中显示所有“项目”,其中所有项目都有“状态”=“A”。
这是主表的示例:
+--------------+-----------+-------+
| PROJECT | COST_ITEM | STATUS|
+--------------+-----------+-------+
| S/180779/01 | 3925 | A |
| S/180779/02 | 4000 | P |
+--------------+-----------+-------+
我正在尝试使用此代码:
select project,status
from C_PROJI_ADD_DOC
where status = 'A'
GROUP BY project,status
我得到的示例:
+--------------+------+
| PROJECT |STATUS|
+--------------+------+
| S/180063/02 | A |
| S/180157/01 | A |
| S/180063/03 | A |
| S/180063/05 | A |
+--------------+------+
下面是我得到的真实示例:
如果我运行这个查询,会出现其他项目,比如“S/180779/01”,但是当我打开这个项目时,有些项目的状态 = 'P'
+--------------+-----------+-------+
| PROJECT | COST_ITEM | STATUS|
+--------------+-----------+-------+
| S/180779/01 | 3925 | A |
| S/180779/01 | 3927 | A |
| S/180779/01 | 3928 | P |
| S/180779/01 | 3930 | P |
+--------------+-----------+-------+
我怎样才能让它只显示所有项目都为 STATUS = 'A' 的项目
解决方案
除了过滤具有“A”的项目外,您还需要一个条件,即同一项目不能存在“P”:
select distinct project, status
from C_PROJI_ADD_DOC P1
where status = 'A'
and not exists (
select 1
from C_PROJI_ADD_DOC P2
where P2.status = 'P'
and P2.project = P1.project
)
推荐阅读
- angular - ./node_modules/ng2-charts/fesm5/ng2-charts.js 中的警告 230:54-72 “在 '@angular/core' 中找不到导出 'ɵɵdefineInjectable'
- python - 根据特定条件将数据帧一列中的所有行转置为多列
- c# - 脚本任务错误:系统存储不足。服务器响应是:4.5.3。收件人过多 (AS780090)
- hive - 我们如何使用 URL 将数据加载到配置单元中
- struct - 如何在 Julia 中创建结构?
- android - 活动的 Edittext 自动填充覆盖在片段上可见
- java - Googlemaps V2:在 GeoJsonPolygon 上添加信息窗口
- microsoft-graph-api - 通过 Graph API 访问和创建团队聊天
- reactjs - react-setState 不清除文本框
- arrays - “() => x”类型中缺少属性“x”,但在“x”类型中是必需的