根据对另一个表的列进行的计算,从一个表中查找数据

时间:2017-09-30 02:28:06

标签: sql sql-server subquery

我有两张桌子1. Tenancy_histories 2.个人档案。 " Tenancy_histories"包含租户的move_in_date和move_out_date。 "配置文件"由fisrt_name,last_name组成。需要找出过去停留时间最长的租户的全名。这两个表都由profile_id连接。

我试过这样的事情

SELECT  MAX(ISNULL(DATEDIFF(dd, move_in_date, move_out_date),0))
FROM Tenancy_histories

找到最长停留时间。但是如何加入这两个表以便我可以从两个表中获取相关数据?

1 个答案:

答案 0 :(得分:1)

您需要加入profiles表。使用Top 1Order by查找租户停留时间最长的租户。

SELECT TOP 1 Full_Name = first_name+' '+last_name,
             no_of_days_stayed = Datediff(dd, move_in_date, move_out_date)
FROM   tenancy_histories t
       INNER JOIN profiles p
               ON t.profile_id = t.profile_id
ORDER  BY no_of_days_stayed DESC