Based on the assumption that the report_begin_date will always be the first date of the year, this logic will get the correct dates. If you calc the 1 year back numbers first it's as simple as subtracting a year for the 2 year back numbers.DECLARE @report_Begin_date AS DATE;
SET @report_Begin_date = '1/1/2017';
DECLARE @report_End_date AS DATE;
SET @report_End_date = '9/30/2017';
DECLARE @Begin_1_year_back AS DATE;
DECLARE @Begin_2_year_back AS DATE;
SET @Begin_1_year_back = DATEADD(YY, -1, DATEADD(MM, -1, @report_Begin_date));
SET @Begin_2_year_back = DATEADD(YY, -1, @Begin_1_year_back);
DECLARE @End_1_year_back AS DATE;
DECLARE @End_2_year_back AS DATE;
SET @End_1_year_back = DATEADD(DD, -1, DATEADD(YY, 1, @Begin_1_year_back));
SET @End_2_year_back = DATEADD(YY, -1, @End_1_year_back);
SELECT @Begin_1_year_back AS Begin_1_year_back, @End_1_year_back AS End_1_year_back;
SELECT @Begin_2_year_back AS Begin_2_year_back, @End_2_year_back AS End_2_year_back;
-------------------------------------------------------------
we travel not to escape life but for life not to escape us
Don't fear failure, fear regret.