USP_CONSTITUENTDATAPOINTS_WITHINBOUNDS_WITHIDSET
Alternate version of USP_CONSTITUENTDATAPOINTS_WITHINBOUNDS which allows for the inclusion of an ID set.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@IDSETID | uniqueidentifier | IN | |
@NORTHLATITUDE | decimal(13, 6) | IN | |
@SOUTHLATITUDE | decimal(13, 6) | IN | |
@WESTLONGITUDE | decimal(13, 6) | IN | |
@EASTLONGITUDE | decimal(13, 6) | IN |
Definition
Copy
/*
Generated by Blackbaud Application Framework
Date: 4/29/2010 7:38:43 PM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=2.6.1444.0, Culture=neutral, PublicKeyToken=null
*/
create procedure dbo.USP_CONSTITUENTDATAPOINTS_WITHINBOUNDS_WITHIDSET (@IDSETID uniqueidentifier = null, @NORTHLATITUDE decimal(13, 6), @SOUTHLATITUDE decimal(13, 6), @WESTLONGITUDE decimal(13, 6), @EASTLONGITUDE decimal(13, 6))
with execute as owner
as
set nocount on;
declare @r int;
if @IDSETID is null
begin
exec @r = dbo.[USP_CONSTITUENTDATAPOINTS_WITHINBOUNDS] @NORTHLATITUDE, @SOUTHLATITUDE, @WESTLONGITUDE, @EASTLONGITUDE;
end
else
begin
if not exists(select [ID] from dbo.[IDSETREGISTER] where [ID] = @IDSETID)
raiserror('ID set does not exist in the database.', 15, 1);
declare @DBOBJECTNAME nvarchar(max);
declare @DBOBJECTTYPE smallint;
declare @SQLTOEXEC nvarchar(max);
select
@DBOBJECTNAME = [DBOBJECTNAME],
@DBOBJECTTYPE = [OBJECTTYPE]
from dbo.[IDSETREGISTER]
where [ID] = @IDSETID;
if left(@DBOBJECTNAME, 1) <> '['
set @DBOBJECTNAME = '[' + @DBOBJECTNAME + ']';
if @DBOBJECTTYPE = 1
begin
set @DBOBJECTNAME = @DBOBJECTNAME + '(';
set @DBOBJECTNAME = @DBOBJECTNAME + ')';
end
else
begin
if @DBOBJECTTYPE = 2
set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @IDSETID) + ''')';
end
set @SQLTOEXEC = N'set nocount on;
select
ADDRESSCOORDINATES.LATITUDE,
ADDRESSCOORDINATES.LONGITUDE,
-- Each datapoint is weighted the same.
1.0 as [RELATIVEINTENSITY]
from ADDRESSCOORDINATES
inner join
ADDRESS on ADDRESS.ID = ADDRESSCOORDINATES.ADDRESSID
inner join
CONSTITUENT on CONSTITUENT.ID = ADDRESS.CONSTITUENTID
inner join dbo.' + @DBOBJECTNAME + ' as [IDSET_9855a446_3ed9_4b39_ba51_2e0337137b95] on [CONSTITUENT].[ID] = [IDSET_9855a446_3ed9_4b39_ba51_2e0337137b95].[ID]
where
ADDRESS.ISPRIMARY = 1
and
(ADDRESSCOORDINATES.LATITUDE >= @SOUTHLATITUDE and ADDRESSCOORDINATES.LATITUDE <= @NORTHLATITUDE)
and
(ADDRESSCOORDINATES.LONGITUDE >= @WESTLONGITUDE and ADDRESSCOORDINATES.LONGITUDE <= @EASTLONGITUDE)';
exec @r = sp_executesql @SQLTOEXEC, N'@NORTHLATITUDE decimal(13, 6), @SOUTHLATITUDE decimal(13, 6), @WESTLONGITUDE decimal(13, 6), @EASTLONGITUDE decimal(13, 6)', @NORTHLATITUDE = @NORTHLATITUDE, @SOUTHLATITUDE = @SOUTHLATITUDE, @WESTLONGITUDE = @WESTLONGITUDE, @EASTLONGITUDE = @EASTLONGITUDE;
end
return @r;