Показать сообщение отдельно
Старый 16.10.2014, 11:22   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
В БД канала хранимая функция [crt].[GETNEARBYSTORESFUNCTION]
"Группы указателей магазинов" (store locator groups) используется, чтобы определить список "претендентов". Информация о координатах берется из вьюхи STOREVIEW и по ним считается расстояние, а если адрес не задан, то координаты NULL и соответственно ничего не выводится.

Вот кусок из вьюхи, который получает координаты
X++:
 SELECT
		...
		lpa.LATITUDE,
		lpa.LOCATION,
		lpa.LONGITUDE,
		...
		geography::STGeomFromText('POINT(' + CONVERT(VARCHAR(100), lpa.LONGITUDE) + ' ' 
		+  CONVERT(VARCHAR(100), lpa.LATITUDE) + ')', 4326) AS 'GEOLOCATION',
		...
	FROM [ax].RETAILCHANNELTABLE rct	
	INNER JOIN [ax].RETAILSTORETABLE rst ON rct.RECID = rst.RECID
	...
	LEFT OUTER JOIN [ax].DIRPARTYTABLE dp ON dp.RECID = rct.OMOPERATINGUNITID
	...
	LEFT OUTER JOIN [ax].DIRPARTYLOCATION AS dpl ON dpl.PARTY = dp.RECID AND dpl.ISPRIMARY = 1
	...
	LEFT OUTER JOIN [ax].LOGISTICSPOSTALADDRESS AS lpa ON 
						lpa.LOCATION = dpl.LOCATION 
						AND lpa.ISPRIVATE = 0 
						AND GETUTCDATE() BETWEEN VALIDFROM AND VALIDTO
За это сообщение автора поблагодарили: Ivanhoe (3).