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