Sql server 从联接表获取最新值
我有两个由映射表连接的表 我想从最后一次敲击中得到强度Sql server 从联接表获取最新值,sql-server,jointable,getlatest,Sql Server,Jointable,Getlatest,我有两个由映射表连接的表 我想从最后一次敲击中得到强度 With IssuesCTE AS ( Select * from Issues ), TapsCTE AS ( SELECT MapIssueTaps.IssueId, SD.Id, SD.Intensity, SD.Notes, Row_Number() OVER ( PARTITION BY MapIssu
With IssuesCTE AS
(
Select * from Issues
),
TapsCTE AS
(
SELECT
MapIssueTaps.IssueId,
SD.Id,
SD.Intensity,
SD.Notes,
Row_Number() OVER
(
PARTITION BY MapIssueTaps.IssueId ORDER BY SD.CreatedOn DESC) AS RowNumber
FROM Taps SD
join MapIssueTaps on MapIssueTaps.TapId=SD.Id
)
Select IssuesCTE.*,TapsCTE.* from IssuesCTE,TapsCTE
join MapIssueTaps on MapIssueTaps.TapId = TapsCTE.Id
--where RowNumber=1
以下是所有数据:
UserId Id Name Intensity CreatedOn UpdatedOn Description IssueId Id Intensity Notes RowNumber
A291B6F4-866D-4EFA-9522-7AA45710C7E0 1 c 2 2014-02-02 03:53:33.200 2014-02-02 03:53:33.200 cx 1 3 8 dd 1
A291B6F4-866D-4EFA-9522-7AA45710C7E0 8 d 5 2014-02-03 22:16:24.157 2014-02-03 22:16:24.157 d 1 3 8 dd 1
A291B6F4-866D-4EFA-9522-7AA45710C7E0 1 c 2 2014-02-02 03:53:33.200 2014-02-02 03:53:33.200 cx 1 2 1 xzc 2
A291B6F4-866D-4EFA-9522-7AA45710C7E0 8 d 5 2014-02-03 22:16:24.157 2014-02-03 22:16:24.157 d 1 2 1 xzc 2
A291B6F4-866D-4EFA-9522-7AA45710C7E0 1 c 2 2014-02-02 03:53:33.200 2014-02-02 03:53:33.200 cx 1 1 8 ss 3
A291B6F4-866D-4EFA-9522-7AA45710C7E0 8 d 5 2014-02-03 22:16:24.157 2014-02-03 22:16:24.157 d 1 1 8 ss 3
我想这样:
UserId Id Name Intensity CreatedOn UpdatedOn Description IssueId Id Intensity Notes RowNumber
A291B6F4-866D-4EFA-9522-7AA45710C7E0 1 c 2 2014-02-02 03:53:33.200 2014-02-02 03:53:33.200 cx 1 3 8 dd 1
A291B6F4-866D-4EFA-9522-7AA45710C7E0 8 d 5 2014-02-03 22:16:24.157 2014-02-03 22:16:24.157 d 1 3 null dd 1
如何操作?取消注释RowNumber=1的位置。我注释掉了,这样我就可以看到底部输出中转储中的所有行是注释掉的版本,但是两种情况下的currentintensity是相同的,但数据不同,基本上,我想从关联的taps表中返回一个最晚日期的值,但它必须是有效的,我仍然没有得到问题。您似乎希望结尾的第三列为null,而不是8。这就是问题吗?有两个问题id 1和8。。。有3个taps id 1,2,3,在映射表中有映射issueid,tapid 1,1,2 1,3,因此第二个问题没有任何taps映射,但查询返回与第一行相同的最大值。。。第二行没有任何taps数据映射。。。我会将所有数据放在这里,但这些消息框非常小,IssueSte为Select*from Issues,TapsCate为Select MapIssueTaps.IssueId,Tapstab.Id,Tapstab.Intensity,Tapstab.Notes,按MapIssueTaps.IssueId分区上的行号按Tapstab.CreatedOn DESC作为行号从Tapstab连接MapIssueTaps到MapIssueTaps.TapId=Tapstab.Id选择IssuesCTE.*,TapsCTE.*从IssuesCTE连接TapsCTE到IssuesCTE.Id=TapsCTE.IssueId,其中行号=1