2017-07-31 37 views
1

我正在尝试编写一个查询来获取与我们在过去最长时间内呆在一起的租户的配置文件ID,全名和联系号码如何链接max(DATEDIFF)与sql服务器中的子查询

配置文件ID是配置文件中的主键和租户历史记录中的外键。我如何执行表b中的日期差异并获得表a的信息

select profile_id, first_name+ ' '+ last_name as Full_Name , phone from dbo.Profiles where 
     profile_id= 
     (SELECT profile_id from dbo.Tenancy_histories where max(DATEDIFF(day,move_in_date,move_out_date)); 
+0

您是否在寻找max move_in_date,其中move_out_date为空。暗示他们没有搬出去,在历史上有最大的举动?还是那些留在那里的人最长,不管他们是否还在那里? –

回答

0

这样的情况如何?

select profile_id, first_name+ ' '+ last_name as Full_Name , phone from dbo.Profiles where 
    profile_id= 
    (SELECT top 1 profile_id from dbo.Tenancy_histories order by DATEDIFF(day,move_in_date,move_out_date); 
+1

'max by(..)'不会奏效。如果你有'top 1',那么这只是'datediff(..)DESC' –

+0

谢谢@NenadZivkovic,我把它改为快。 – Chuck

+0

感谢它的工作 –