Вы можете использовать переменную ...
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