• Tally needs only 5 members because OP needs to derive only 4 rows from each original row. Provided there are no 2 original rows where abs(r1.id-r2.id) < 5 , try

    WITH SAMPLE_DATA(ID,[Workload],Units) AS (

    SELECT * FROM (VALUES

    (1, 'EXO',3 )

    ,(7, 'SPO',4 )

    ,(15, 'LYO',10)) AS X(ID,[Workload],Units)

    )

    SELECT d.ID + t.N, d.Workload, d.Units

    FROM (VALUES (0),(1),(2),(3),(4)) t(N),

    SAMPLE_DATA d