without set up scripts of r create table / insert data....here is a guess
WITH cte_st
AS (
SELECT
S.GroupID
, MIN(ST.StatusID) AS minst
FROM StepTable AS S INNER JOIN
StatusTable AS ST ON S.StatusName = ST.StatusName
GROUP BY
S.GroupID)
SELECT
S.ID
, S.StepID
, S.GroupID
, S.StatusName
, ST.StatusName AS NewStatus
FROM StepTable AS S INNER JOIN
cte_st ON S.GroupID = cte_st.GroupID
INNER JOIN
StatusTable AS ST ON cte_st.minst = ST.StatusID
ORDER BY
S.ID;
________________________________________________________________
you can lead a user to data....but you cannot make them think
and remember....every day is a school day