2013-11-25 5 views
0

У меня есть таблица TruckLocation в SQL.Как создать и вычислить таблицу расстояний с помощью таблицы местоположений?

Select top 4 * 
from TruckLocation 
order by ReadTime desc 

Результат:

OID  TruckID Lat  Lng   Speed   ReadTime 
123  33  37.4060 37.1470   58   2013-11-26 00:39:00.000 
334  23  40.735  35.8159   90   2013-11-26 00:33:00.000 
123  33  37.4060 37.1470   58   2013-11-26 00:31:00.000 
334  23  42.735  36.3159   85   2013-11-26 00:27:00.000 

Я хочу создать новый результат таблицы или магазин процедура является нравится:

Time   TruckID  TotalDistance(KM) 
    2013-11-26  23   125,1245484 
    2013-11-25  23   123,1245484 
    2013-11-24  23   43,1245484 
    2013-11-23  23   434,1245484 
    2013-11-22  23   56,1245484 
    2013-11-21  23   85,1245484 
    .    .    . 
    .    .    . 
    .    18   1215,4544 
    .    .    . 

Я пытался, но мне не удалось.

ответ

0

Я не создали структуру таблицы, чтобы проверить это, но что-то вроде следующего может быть полезным:

DECLARE @g geography; 
DECLARE @h geography; 
SET @g = geography::STGeomFromText('POINT(40.735 35.8159)', 4326); 
SET @h = geography::STGeomFromText('POINT(42.735 36.3159)', 4326); 
--SELECT @g.STDistance(@h); 

SELECT CONVERT(DATETIME, CAST(readtime AS VARCHAR(11)),103), truckid, @g.STDistance(@h) 
FROM [trucklocation] 
GROUP BY readtime 

Это использует SQL Server 2008 в встроенную поддержку georgraphy.

Вы можете прочитать здесь STGeomFromText http://technet.microsoft.com/en-us/library/bb933834(v=sql.100).aspx И вы можете прочитать здесь STDistance http://technet.microsoft.com/en-us/library/bb933808(v=sql.100).aspx