Доброе утро,
Я работаю над проектом для работы и нахожусь в тупике.То, что я пытаюсь сделать, это взять список записей (в нем хранятся почтовый индекс, широта и долгота магазина) и поместить их на ближайший рынок.
У меня есть функция, которая сравнивает 2 почтовых индексаи связанные с ними широты и долготы и получить расстояние.Функция прекрасно работает при вводе записей по одному за раз.
Я пытаюсь найти способ заставить функцию работать с заданными записями по 1 за раз и дать мне расстояние.
В настоящее время у меня есть:
объявить @i int
выбрать @i = min (RowID) из # unmatched2
объявить @max int
выбрать @max= max (RowID) из # unmatched2, в то время как @i <= @max begin <br>выберите Zipcode, Longitude, Latitude из # unmatched2, где RowID = @i
DECLARE @Lat1 float
DECLARE @Long1 float
DECLARE @Lat2 float
DECLARE @Long2 float
SELECT @Lat1 = max(Latitude) from #unmatched2
where RowID = @i
SELECT @Long1 = max(Longitude) from #unmatched2
where RowID = @i
SELECT @Lat2 = max(Latitude) from ProgramManagement.dbo.zipcode_lookup
where ZIPCode = 92101
SELECT @Long2 = max(Longitude) from ProgramManagement.dbo.zipcode_lookup
where ZIPCode = 92101
select ProgramManagement.dbo.CoordinateDistanceMiles(@Lat1, @Long1, @Lat2, @Long2)
set @i = @i + 1 end
@ database - моя временная таблица.используя, чтобы получить количество строк.например, в этом случае я использую #unmatched.
Пример записи:
Zipcode, latitude , longitude
92101 , 32.7152778, -117.1563889
Результатом будет просто одно число на расстоянии:
140.01
Таким образом, временная таблица будет иметь ~ 1300 записей ивыходные данные будут представлять собой одно число для каждой строки.
В настоящее время вышеприведенное работает и проходит через всю таблицу, но мои результаты выдаются в отдельных результатах.1-е:
Zipcode Longitude Latitude
93510 -118.1824020000 34.4679410000
2-е:
Distance
134.035921098023
То, что мне нужно, это просто список результатов от 1 до конца вместо того, что я получаю в настоящее время.Какие-либо предложения?Или есть способ получить результаты:
Zipcode Longitude Latitude Distance
93510 118.1824020000 34.4679410000 134.035921..