我有一个日期时间字段" Insurance_Start_Date"在TableA中,我需要将以下资格添加到查询中。
从上一年的4月1日开始获取所有记录。示例:Insurance_Start_Date> = 2017-04-01。但我不希望这个价值被硬编码。
如果同一会员有2个具有不同Insurance_Start_Date的条目。然后我想在我的输出中只看到最近的记录。
答案 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