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;