• Before you continue you may wish to consider the data types you have and what you are trying to achieve, The following may help in the right direction:

    SELECT M1, M2, CAST(M2 + ' 01 ' + CAST(LEFT(M1, 4) as char(4)) as date) MonthStart,
    DATEPART(QUARTER, DATEADD(MONTH, -3, CAST(M2 + ' 01 ' + CAST(LEFT(M1, 4) as char(4)) as date))) FinQtr,
    CASE
    WHEN DATEPART(mm, CAST(M2 + ' 01 ' + CAST(LEFT(M1, 4) as char(4)) as date)) < 4 THEN DATEPART(YEAR, CAST(M2 + ' 01 ' + CAST(LEFT(M1, 4) as char(4)) as date))
    ELSE DATEPART(YEAR, CAST(M2 + ' 01 ' + CAST(RIGHT(M1, 4) as char(4)) as date))
    END FinYear
    FROM TEST
    ORDER BY FinYear

    ...