USP_DATALIST_CONSTITUENTPROXIMITYRECTANGLE
Returns a list of constituents within a given rectangle from a set of coordinates.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NORTHWESTLATITUDE | decimal(16, 13) | IN | Northwest latitude |
@NORTHWESTLONGITUDE | decimal(16, 13) | IN | Northwest longitude |
@SOUTHEASTLATITUDE | decimal(16, 13) | IN | Southeast latitude |
@SOUTHEASTLONGITUDE | decimal(16, 13) | IN | Southeast longitude |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CONSTITUENTPROXIMITYRECTANGLE(@NORTHWESTLATITUDE decimal(16,13),
@NORTHWESTLONGITUDE decimal(16,13),
@SOUTHEASTLATITUDE decimal(16,13),
@SOUTHEASTLONGITUDE decimal(16,13))
as
set nocount on;
select CONSTITUENT.ID,
CONSTITUENT.NAME,
ADDRESS.ID [ADDRESSID],
ADDRESS.ADDRESSBLOCK,
ADDRESS.CITY,
STATE.ABBREVIATION [STATE],
ADDRESS.POSTCODE,
COUNTRY.ABBREVIATION [COUNTRY],
case when ADDRESSCOORDINATES.LATITUDE is null then POSTCODECOORDINATES.LATITUDE else ADDRESSCOORDINATES.LATITUDE end LATITUDE,
case when ADDRESSCOORDINATES.LONGITUDE is null then POSTCODECOORDINATES.LONGITUDE else ADDRESSCOORDINATES.LONGITUDE end LONGITUDE,
null as GROUPID,
null as GROUPNAME
from dbo.CONSTITUENT
inner join dbo.ADDRESS on CONSTITUENT.ID = [ADDRESS].CONSTITUENTID and ADDRESS.ISPRIMARY = 1
left join dbo.POSTCODECOORDINATES on ADDRESS.POSTCODE = POSTCODECOORDINATES.POSTCODE
left join dbo.ADDRESSCOORDINATES on ADDRESS.ID = ADDRESSCOORDINATES.ADDRESSID
left join dbo.STATE on [STATE].ID = ADDRESS.STATEID
left join dbo.COUNTRY on COUNTRY.ID = ADDRESS.COUNTRYID
where case when ADDRESSCOORDINATES.LATITUDE is null then POSTCODECOORDINATES.LATITUDE else ADDRESSCOORDINATES.LATITUDE end <= @NORTHWESTLATITUDE
and case when ADDRESSCOORDINATES.LATITUDE is null then POSTCODECOORDINATES.LATITUDE else ADDRESSCOORDINATES.LATITUDE end >= @SOUTHEASTLATITUDE
and case when ADDRESSCOORDINATES.LONGITUDE is null then POSTCODECOORDINATES.LONGITUDE else ADDRESSCOORDINATES.LONGITUDE end >= @NORTHWESTLONGITUDE
and case when ADDRESSCOORDINATES.LONGITUDE is null then POSTCODECOORDINATES.LONGITUDE else ADDRESSCOORDINATES.LONGITUDE end <= @SOUTHEASTLONGITUDE
and (ADDRESSCOORDINATES.PENDINGGEOCODE is null or ADDRESSCOORDINATES.PENDINGGEOCODE = 0)
and (ADDRESSCOORDINATES.INVALIDGEOCODE is null or ADDRESSCOORDINATES.INVALIDGEOCODE = 0)
order by CONSTITUENT.KEYNAME;