【发布时间】:2021-02-02 17:52:55
【问题描述】:
我正在使用 SSMS、SQL Server 和 SSRS。我有一个 CTE 的结果,我想在它运行“之后”进一步过滤它。
查询在表中查找多个 ID 条目。然后它选择具有空值的那些。这是一个正确的选择,我需要进一步缩小范围。
此时,我过去会将其输出转储到 excel 文件中,并在 ID 字段中查找并突出显示重复值,并且只显示这些行。我的目标是将此纳入 SSRS 报告。
我是否只需要创建一个视图然后针对它运行另一个 CTE 视图、某种类型的嵌套查询,或者存储一个过程并过滤掉结果或使用用户定义的函数?我可以在第一个 CTE 之后使用逗号之类的东西,或者做另一个 WITH 语句吗?提前致谢。
WITH T AS
(
SELECT [ID] ,
[LOCATION] ,
[LOCATION_START_DATE],
[LOCATION_END_DATE],
[POS],
COUNT(*) OVER (PARTITION BY [ID]) as Cnt
FROM LOCATIONS_TABLE WITH (NOLOCK)
)
SELECT [ID] ,
[LOCATION] ,
[LOCATION_START_DATE],
[LOCATION_END_DATE],
[POS]
FROM T
WHERE Cnt >= 2
AND LOCATION_END_DATE IS NULL
ORDER BY ID
【问题讨论】:
-
有了样本数据和预期结果,您的问题会变得更加清晰。
标签: sql sql-server tsql subquery common-table-expression