• Hi Drew, tried this ........

      ALTER PROC MyTest1
      AS
     
      DECLARE
        @i INT = 1
       ,@IncidentValueRecordCount INT
       ,@NetLossesListPrev12Months [dbo].[Net Losses List]
       ,@NetLossesSumPrev12Months FLOAT
       
      SELECT @IncidentValueRecordCount = MAX([Record Loop ID])  FROM [dbo].[Mytable];

      WHILE @i <= @IncidentValueRecordCount

      BEGIN

        DELETE FROM @NetLossesListPrev12Months;

        INSERT INTO @NetLossesListPrev12Months

        SELECT
          A.[Net Losses]
        FROM
          [dbo].[Mytable] A
         ,(
            SELECT *
            FROM [dbo].[Mytable]
            WHERE [Record Loop ID] = @i
          ) B   
        WHERE A.[ADM_RISK_GRADING_ORG_UNIT_ID] = B.[ADM_RISK_GRADING_ORG_UNIT_ID]
          AND A.[ADM_EVENT_TYPE_ID] = B.[ADM_EVENT_TYPE_ID]
          AND A.[ADM_CAUSE_TYPE_ID] = B.[ADM_CAUSE_TYPE_ID]
          AND A.[Effect Date YYYYMM] >= B.[Effect Date YYYYMM] - 100
          AND A.[Effect Date YYYYMM] < B.[Effect Date YYYYMM];

       SET @i  = @i + 1;

       END

     --------------------------------------------------------------------

        SELECT
       A.[Record Loop ID],
       A.[Net Losses],
          sum(A.[Net Losses]) over (partition by A.[ADM_RISK_GRADING_ORG_UNIT_ID],A.[ADM_EVENT_TYPE_ID],A.[ADM_CAUSE_TYPE_ID] order by A.[Effect Date YYYYMM] rows between 12 preceding and 1 preceding) [Net Losses Prev 12 Months]
        INTO #A
     FROM [dbo].[Mytable] A

        SELECT
     [Record Loop ID],
     [Net Losses],
     [Net Losses Prev 12 Months],
            [Risk Grading] =
            CASE
              WHEN [Net Losses] = 0
        THEN NULL
              WHEN [Net Losses] <= [dbo].[Percentile](@NetLossesListPrev12Months, 0.2)
        THEN 1
              WHEN [Net Losses] <= [dbo].[Percentile](@NetLossesListPrev12Months, 0.4)
        THEN 2
              WHEN [Net Losses] <= [dbo].[Percentile](@NetLossesListPrev12Months, 0.6)    
        THEN 3
              WHEN [Net Losses] <= [dbo].[Percentile](@NetLossesListPrev12Months, 0.8)
        THEN 4
              ELSE 5
            END INTO #B
     FROM #A

     WHERE [Record Loop ID] between 109171 and 109182

     ORDER BY [Record Loop ID]

     ---------------------------------------------------

     UPDATE FROM [dbo].[Mytable] SET
          [Net Losses Prev 12 Months] = C.[Net Losses Prev 12 Months]
         ,[Risk Grading] = C.[Risk Grading]
     
      FROM #B C
      JOIN FROM [dbo].[Mytable] D on D.[Record Loop ID] = C.[Record Loop ID]