我有一个包含数据的表,如下所示。我需要创建一个SSRS报告,当至少一个项目的提交状态包含16时,显示该项目的所有提交。
示例数据:
| 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 |我期望返回的数据如下:
| 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的解决方案,但这似乎适用于使用来自两个不同表的数据。我确信解决方案很简单,但我一直没能找到它。有没有人能帮忙?
发布于 2021-05-19 21:17:30
您可以尝试在LIKE中使用EXISTS子查询
SELECT *
FROM T t1
WHERE EXISTS (
SELECT 1
FROM T tt
WHERE Status LIKE '16%' AND tt.Project = t1.Project
)发布于 2021-05-19 21:17:40
您可以使用exists
select e.*
from example e
where exists (select 1
from example e2
where e2.Project = e.Project and
e2.Status like '16%'
);我不确定你所说的“包含”是什么意思。上面的解释是“开始于”的意思。如果16可以出现在任何位置,则使用:
e2.Status like '%16%'https://stackoverflow.com/questions/67603959
复制相似问题