Tsql 如何找出两行中日期的差异

Tsql 如何找出两行中日期的差异,tsql,Tsql,在下面的数据中,resno是居民编号。我试图找到在顶行有“R”的居民的计数(当数据按“Sort”desc排序时),第1行和第2行中的日期之间的差值为30天 cono resno date seq sort admit_disch 140 9423 2013-12-12 00:00:00.000 255003 255003 R 140 9423 2013-11-17

在下面的数据中,resno是居民编号。我试图找到在顶行有“R”的居民的计数(当数据按“Sort”desc排序时),第1行和第2行中的日期之间的差值为30天

cono    resno      date                         seq    sort     admit_disch
140         9423    2013-12-12 00:00:00.000      255003 255003  R
140         9423    2013-11-17 00:00:00.000      255002 255002  D
140         9423    2013-11-12 00:00:00.000      255001 255001  R
140         9423    2011-06-06 00:00:00.000      255000 255000  D
140         9423    2011-05-18 00:00:00.000      254999 254999  A

140         9604    2012-02-20 00:00:00.000      255548 255548  A
我能够编写一个查询来获取“R”居民,但不确定如何检查两行上的日期。在上述数据中,必须检查2013-12-12日期是否比2013-11-17日期大30天或更长

 select cono,COUNT(resno) from
    (
      select ROW_NUMBER() over(partition by resno rsa.sort desc) rn,*
      from ri_status_admit rsa 
    )B
    where B.rn = 1
   and B.admit_disch = 'R'

      group by cono,resno
未经测试 我怀疑有一些语法错误,但这是最基本的想法

with sorted as 
    (
      select ROW_NUMBER() over(partition by resno rsa.sort desc) rn,*
      from ri_status_admit rsa 
    )
select s1.resno 
  from sorted s1 
  join sorted s2
    on s1.rn = 1 
   and s1.admit_disch = 'R' 
   and s2.rn = 2 
   and datediff(dd,r1.date, r2.date) > 30