首页 > 解决方案 > 根据组内的单行值选择组?

问题描述

我正在处理工资单数据,我只想提取加班的支票。一张带有加班费的支票将有一行显示工资单代码“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 开头的付款代码)

标签: sqltsqlreporting-services

解决方案


您可以使用exists

select t.*
from table t
where exists (select 1 from table t1 where t1.chknum = t.chknum and t1.paycode like '5%');

推荐阅读