BigQuery - это аналитическая база данных, почему вы не используете функцию аналитики?
Регистрируйте только дату нового проекта в качестве даты начала и с помощью функции аналитики LEAD
для расчета даты окончания ( дата начала следующего проекта)
with sample as (
select "Bob" as name, "P1" as project, "01-July-2020" as date
UNION ALL
select "Jack" as name, "J1" as project, "01-July-2020" as date
UNION ALL
select "Bob" as name, "P2" as project, "15-July-2020" as date
UNION ALL
select "Jack" as name, "J2" as project, "15-July-2020" as date)
select name, project, date as start_date,
lead(date) OVER (partition by name order by date ASC) as end_date
from sample order by name
Результат:
введите описание изображения здесь
У вас работает? Достаточно?