Последнюю по каким критериям? по дате? Сортируйте по дате и в select top 1 добавьте.
reservation приждойнить еще раз, по recipient.id.
текущий день - дата или день недели? select DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
Вы бы хоть запрос показали, а лучше с данными.
table scan и hash match говорят о том можно еще что то сделать,
вопрос в том надо ли?
Сильно медленно работает?
Индекс кластерный? Покрывающий ваш join?