다른 사람이 버그인지 확인하거나 잘못된 조치를 취하고 있습니까? SQL Server 지리의 버그?
IALTER PROCEDURE [dbo].[Distance]
@origin varchar(50),@destination varchar(50),@unit varchar(5)
as
declare @or geography, @dest geography
SET @or = (select Location from [dbo].Promotion where [email protected])
SET @dest = (select Location from [dbo].Promotion where [email protected])
IF @unit='miles'
SELECT @or.STDistance(@dest)/1609.344
ELSE
--Else show the distance in km
SELECT @or.STDistance(@dest)/1000
위치 데이터베이스
지리 데이터 타입은 내가 그런 다음 데이터베이스
Latitude Longitude
1 -34.612654 -58.463586
2 -34.592802 -58.454317
3 -34.597889 -58.617949
이 주소를했습니다이 저장 프로 시저 (SQL 서버 2008)했습니다
execute dbo.Distance 'Number 1','Number 2','km'
returns 2653.49845233371 kms
execute dbo.Distance 'Number 1','Number 3','km'
returns 17.2155414117145 kms
이 실행 첫 번째 경우 Google지도에 가면
는 주위 사람들 좌표 betweeen 4 킬로미터이며, 두 번째 비교 확인 될 것으로 보인다.
첫 번째 이유가 왜 그렇게 잘못 되었습니까? SQL Server의 버그입니까?
미리 감사드립니다. 기예르모.
큰 응용 프로그램을 사용하는 첫 번째 규칙은 수백만 명의 사람들이 사용하는 것으로서 버그는 코드에 있습니다. 두 번째 규칙 - 버그가 코드에 있습니다. 세 번째 규칙 .... 당신은 아이디어를 얻을;) – Jamiec
위치가 위도 및 경도 열을 기반으로 계산 열이라고 가정합니까? 그렇다면 정의를 줄 수 있습니까? 이에 좋은 이유가 될 것입니다 –