SQL日期和最近的条目记录

时间:2018-05-16 20:35:08

标签: sql-server sql-server-2012

我有一个日期时间字段" Insurance_Start_Date"在TableA中,我需要将以下资格添加到查询中。

  1. 从上一年的4月1日开始获取所有记录。示例:Insurance_Start_Date> = 2017-04-01。但我不希望这个价值被硬编码。

  2. 如果同一会员有2个具有不同Insurance_Start_Date的条目。然后我想在我的输出中只看到最近的记录。

1 个答案:

答案 0 :(得分:1)

您可以使用变量...

declare @startDate datetime = cast(datepart(year,dateadd(year,-1,getdate())) as char(4)) + '0401'

select...from...where Insurance_Start_Date >= @startDate

对于第二个问题,您可以使用窗口函数...

;with cte as(
select *, RN = row_number() over (partition by memberColumnID order by Insurance_Start_Date desc)
from YourTable
where Insurance_Start_Date >= @startDate)

select * from cte where RN = 1