sql - 根据组内的单行值选择组?
问题描述
我正在处理工资单数据,我只想提取加班的支票。一张带有加班费的支票将有一行显示工资单代码“5”。我知道我可以过滤并带回其中包含“5”的行,但我需要资格检查中的所有行,而不仅仅是其中包含“5”的行。
这是数据的基本示例:
ROW CHKNUM PAYCODE AMOUNT
1 000010 1 $15
2 000010 1N $20
3 000010 5 $25
4 000011 1 $15
5 000011 1N $20
6 000012 1 $15
7 000012 5 $25
8 000013 1 $15
9 000014 1 $15
10 000014 5N $30
我需要返回支票号码 10、12 和 14 的所有行,因为该支票号码包含“5”支付代码。(还需要所有以 5 开头的付款代码)
解决方案
您可以使用exists
:
select t.*
from table t
where exists (select 1 from table t1 where t1.chknum = t.chknum and t1.paycode like '5%');
推荐阅读
- node.js - 当我尝试从计划的云功能访问外部 API 时,我不断收到错误消息,错误:找不到模块“请求”
- tableau-api - Tableau 维度中的不同值
- asp.net-mvc - 将 OpenId Connect 与 ASP.NET MVC 5 一起使用:在请求中设置状态参数时未调用 AuthorizationCodeReceived
- mysql - 结合两个查询并获得计数的总和
- terraform - How to use format function in Terraform
- python - Python exec() 函数 - 语法错误:解析时出现意外 EOF
- node.js - 如何使用fluent-ffmpeg更改水印图像的大小并设置视频的大小和纵横比?
- javascript - SweetAlert2 和 Vanilla JS 将 EventListener 添加到具有相同类名的多个按钮?
- sql - 节点应用程序永久等待本地主机
- java - Java:展平列表或对象列表,保留类