Корабль имеет начальную точку.Он отправляется в пункт назначения, затем, возможно, в другие пункты назначения, а затем обратно в свою начальную точку.Один кругЗатем он снова уходит ... пока не вернется снова.Второй круг и т. Д.
Если мы посмотрим на определенный диапазон дат, возможно, мы увидим начальную точку в первый день или корабль уже движется, и мы его не видим.
Таким образом, чтобы увидеть, как часто корабль возвращался в диапазоне дат (т.е. завершил цикл), мы должны посчитать стартовые точки корабля на следующий день после первого дня диапазона дат.
select ship_id, count(*)
from location
where location_date between dateadd(day, 1, @startdate) and @enddate
and destination_id in (select destination_id from destination where type = 1)
group by ship_id;