SQL内部加入外部参照表的最新行

时间:2014-03-05 00:59:01

标签: sql sql-server reporting-services

关于一个简单的INNER JOIN的快速问题,我似乎无法找到答案......

在我正在尝试构建的报告的一小部分中,我需要显示交叉引用表中的最新行。

以下是我所拥有的一小部分表格:

票务

  • ID int
  • 名称varchar(25)

状态

  • ID int
  • 名称varchar(25)

TicketStatusXref

  • ID int
  • TicketID int
  • StatusID int
  • CreatedDate DateTime

票证可以包含一个到多个TicketStatusXref。如何连接这些表以显示故障单表中的每个故障单ID和故障单名称,以及状态表中的最新状态名称(通过TicketStatusXref),而报告中没有重复的故障单?

1 个答案:

答案 0 :(得分:1)

假设SQL Server:

select t.ID, t.Name, s.Name    
from Ticket t
join (
    select TicketID, StatusID, row_number() over 
           (partition by TicketID order by CreatedDate desc) rn
    from TicketStatusXref
) x on x.TicketID=t.TicketID and rn=1
join Status s on x.StatusID=s.StatusID