我有两个Query,Query1:
with cte as ( select dbo.Cable.*,row_number() over(partition by dbo.Cable.TagNo order by dbo.Cable.CableRevision desc) as rn from dbo.Cable where (dbo.Cable.CableRevision = @CoreRevision ) ) select * from cte where rn = 1
还有Query2
with cte as ( select dbo.Cable.TagNo,dbo.Core.*,row_number() over(partition by dbo.Core.CoreNo order by dbo.Core.CoreRevision desc) as rn from dbo.Core INNER JOIN dbo.Cable ON dbo.Cable.Id = dbo.Core.CableId where (dbo.Core.CoreRevision <= @CoreRevision ) ) select * from cte where rn = 1
这两个查询与Query1.TagNo和Query2.TagNo相关
我如何使用连接这两个查询,是否可以使用命令?
谢谢
解决方法
尝试这个查询,也许这是你正在寻找.
;WITH cte AS (SELECT dbo.Cable.*,row_number() over(partition by dbo.Cable.TagNo order by dbo.Cable.CableRevision desc) as rn FROM dbo.Cable WHERE dbo.Cable.CableRevision = @CoreRevision ),cte2 AS (SELECT dbo.Cable.TagNo,row_number() over(partition by dbo.Core.CoreNo order by dbo.Core.CoreRevision desc) as rn FROM dbo.Core INNER JOIN dbo.Cable ON dbo.Cable.Id = dbo.Core.CableId WHERE dbo.Core.CoreRevision <= @CoreRevision ) SELECT * FROM cte c FULL JOIN cte2 c2 ON c.TagNo = c2.TagNo WHERE c.rn = 1 OR c2.rn = 1
原文地址:https://www.jb51.cc/mssql/81367.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。