Если я правильно понимаю, вы можете расширить данные с помощью рекурсивного CTE, а затем отфильтровать выходные дни:
with cte as (
select ltd, start_date, end_date,
from a
union all
select ltd, date_add(day, 1, start_date), end_date
from cte
where start_date < end_date
)
select ltd, start_date, end_date
from cte
where datename(weekday, start_date) not in ('Saturday', 'Sunday');