首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择某一行在某列中有特定值的多行?

如何选择某一行在某列中有特定值的多行?
EN

Stack Overflow用户
提问于 2021-05-19 21:11:03
回答 2查看 37关注 0票数 1

我有一个包含数据的表,如下所示。我需要创建一个SSRS报告,当至少一个项目的提交状态包含16时,显示该项目的所有提交。

示例数据:

代码语言:javascript
复制
| Project | SubmittalNumber | Description | Status |
|---------|-----------------|-------------|--------|
|53613    |13-1             |Permit       |16A     |
|53613    |13-2             |Survey       |15      |
|53613    |13-3             |Hours        |14      |
|53674    |74-1             |Permit       |15      |
|53674    |74-2             |Survey       |14      |
|1063     |63-1             |Permit       |16      |
|1063     |63-2             |Survey       |13      |

我期望返回的数据如下:

代码语言:javascript
复制
| Project | SubmittalNumber | Description | Status |
|---------|-----------------|-------------|--------|
|53613    |13-1             |Permit       |16A     |
|53613    |13-2             |Survey       |15      |
|53613    |13-3             |Hours        |14      |
|1063     |63-1             |Permit       |16      |
|1063     |63-2             |Survey       |13      |

我知道使用Where Status如'16%‘将只返回某些版本为16的行,而不会返回与项目相关的其他行。我也找到了使用Exist的解决方案,但这似乎适用于使用来自两个不同表的数据。我确信解决方案很简单,但我一直没能找到它。有没有人能帮忙?

EN

回答 2

Stack Overflow用户

发布于 2021-05-19 21:17:30

您可以尝试在LIKE中使用EXISTS子查询

代码语言:javascript
复制
SELECT *
FROM T t1
WHERE EXISTS (
    SELECT 1
    FROM T tt
    WHERE Status LIKE '16%' AND tt.Project = t1.Project
)
票数 0
EN

Stack Overflow用户

发布于 2021-05-19 21:17:40

您可以使用exists

代码语言:javascript
复制
select e.*
from example e
where exists (select 1
              from example e2
              where e2.Project = e.Project and 
                    e2.Status like '16%'
             );

我不确定你所说的“包含”是什么意思。上面的解释是“开始于”的意思。如果16可以出现在任何位置,则使用:

代码语言:javascript
复制
                    e2.Status like '%16%'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67603959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档