小编use*_*912的帖子

最近6个月使用t-sql在SQL Server中重复记录?

我有一张桌子:

declare @t1 table(Pat_Ref int,regdt datetime)

insert into @t1 
values   (1,'2015-06-09 21:31:09.253')
        ,(1,'2015-04-09 21:31:09.253')
        ,(2,'2015-06-08 21:31:09.253')
        ,(2,'2015-03-09 21:31:09.253')
        ,(3,'2014-11-09 21:31:09.253')
        ,(3,'2015-02-15 21:31:09.253')
        ,(4,'2015-01-15 21:31:09.253')
Run Code Online (Sandbox Code Playgroud)

我希望最近的regdt日期只有过去6个月的重复记录.

注意:首次重复记录可能超过6个月.

例如

(3, '2014-11-09 21:31:09.253') and 
(3,'2015-02-15 21:31:09.253')
Run Code Online (Sandbox Code Playgroud)

这应该被视为重复记录

结果应该是这样的:

Pat_Ref regdt
1       2015-06-09 21:31:09.253   
2       2015-06-08 21:31:09.253   
3       2015-02-15 21:31:09.253
Run Code Online (Sandbox Code Playgroud)

我试过这个查询:

;with cte 
as (
    select * from (
        select *, ROW_NUMBER() over (partition by Pat_Ref order by regdt asc) Rn
        from @t1 where convert(date, regdt)>=DATEADD(MM, -6, convert(date,GETDATE()))
    ) t2 
        where t2.Rn>1) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2008-r2

2
推荐指数
1
解决办法
136
查看次数

标签 统计

sql-server ×1

sql-server-2008-r2 ×1

t-sql ×1