Ну, это зависит от того, какой тип информации о движении у вас есть.Если у вас есть настроенные таблицы, например:
Автомобиль (идентификатор, тип, емкость, ...)
MovementPoint (идентификатор автомобиля, широта, долгота, дата-время, средняя скорость)
Это позволит вам запрашивать, если две машины едут в одну и ту же точку плюс или минус 5 минут, например:
Select * from Vehicle v INNER JOIN MovementPoint mp on mp.VehicleId = v.Id
WHERE v.Id = @FirstCarID
AND EXISTS
(
SELECT 1 FROM Vehicle v2 INNER JOIN MovementPoint mp2 on mp2.VehicleId = v2.Id
WHERE v2.Id = @SecondCarId
AND mp2.Latitude = mp.Latitude AND mp2.Longitude = mp.Longitude
AND mp2.DateTime BETWEEN DATEADD(minute,-5,mp.DateTime) AND DATEADD(minute,5,mp.DateTime)
)
Вы также можете запросить несколько общих точек для нескольких транспортных средств с определенными временными окнами.
Также вы можете сделать так, чтобы запрос проверял значения широты и долготы в пределах определенного радиуса друг от друга.