• 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.