Thanks MajP, this definitely looks the right way to go about it. Have never used subqueries so will need to spend some time understanding them.
Your SQL produces exactly what I want if the starting table tblOrders has just one CustomerID. But in reality it will have multiple customers so will look something like this.
OrderID,CustomerID,OrderVolume,DeliveryDate,StartDate
129775, 2, 3, 01/05/17, 01/03/17
129700, 2, 1, 25/04/17, 25/02/17
129656, 2, 2, 21/03/17, 21/01/17
129603, 2, 2, 28/02/17, 28/12/16
129550, 2, 1, 27/12/16, 27/10/16
128775, 3, 3, 01/05/17, 01/03/17
128700, 3, 1, 25/04/17, 25/02/17
128656, 3, 2, 21/03/17, 21/01/17
128603, 3, 2, 28/02/17, 28/12/16
128550, 3, 1, 27/12/16, 27/10/16
127775, 4, 3, 01/05/17, 01/03/17
127700, 4, 1, 25/04/17, 25/02/17
127656, 4, 2, 21/03/17, 21/01/17
127603, 4, 2, 28/02/17, 28/12/16
127550, 4, 1, 27/12/16, 27/10/16
etc
I get an error message 'At most one record can be returned by this subquery' and it then shows a single row with #Name? in every column. What needs changing?