每个姓名往前推5天,得出自己目前是第几个,这个查询怎么写
下面这个表每个姓名往前推5天,如何得出自己目前是第几个
TB1
姓名日期
张三4/1/2012
李四 4/1/2012
张三4/3/2012
张三4/2/2012
张三4/9/2012
如何得出下面的结果
姓名日期号码
张三4/1/20121
李四 4/1/20121
张三4/3/20123
张三4/2/20122
张三4/9/20121
[解决办法]
with cte
as
(select t.name,t.日期,flag=case when exists(select 1 from test where datediff(dd,日期,t.日期)<=5 and name=t.name and 日期<>t.日期) then 1 else 0 end
from test t
)
select name,日期,row= row_number () over(partition by name ,flag order by 日期)
from cte