sql server - 根据第二个表中最早的日期连接2个表

时间:2014-05-06 22:27:29

标签: sql sql-server

我正在寻找查询建议来收集以下数据。

表1 '案例' - 包含列:Id, Customer, Product, Reported Date

表2 '活动 - 包含列:Case Id, Date Created, Created By

可以有许多活动链接到同一个案例。我想做的是写一个查询来返回以下内容。

Case.Id, Case.Customer, Case.Product, Case.ReportedDate, 
Activity.DateCreated, Activity.CreatedBy,
datediff(hour, Case.ReportedDate, Activity.DateCreated) 

activity 最早的日期。基本上显示首次创建案例和创建第一个活动之间的时差

我真的很感激有关如何完成这项工作的任何建议join。我尝试了一些东西,但它结束了每个案例返回多行。非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这个......

SELECT C.ID
      ,C.Customer
      ,C.Product
      ,C.ReportedDate
      ,DATEDIFF(HOUR, C.ReportedDate, A.DateCreated) AS [TimePassed]
      ,A.CreatedBy
FROM [Case] C INNER JOIN 
            (SELECT *,
                  ROW_NUMBER() OVER (PARTITION BY CaseId ORDER BY DateCreated ASC) AS rn
            FROM [Activity]) A 
ON C.ID = A.CaseId
WHERE A.rn = 1