Split value from a date range in to individual values per date
WITH cte AS ( SELECT {columns list}, start_date as single_date 
              FROM source_table
            UNION ALL
              SELECT {columns list}, DATEADD(day, 1, single_date)
              FROM cte
              WHERE single_date  &lt; finish_date )
SELECT *
FROM cte;

Example fiddle