USP_RECORDOPERATION_PROSPECTSEGMENTATION_UPDATE

Executes the "Prospect Segmentation: Update" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


                        create procedure dbo.USP_RECORDOPERATION_PROSPECTSEGMENTATION_UPDATE (
                        @ID uniqueidentifier,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null
                    ) as begin
                        if @CHANGEAGENTID is null  
                          exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                      declare @CURRENTDATE datetime;
                      set @CURRENTDATE = getdate();

                      --Clear any existing members

                      exec dbo.USP_PROSPECTSEGMENTATION_PROSPECTS_CLEAR @ID, @CHANGEAGENTID

                      --Populate some variables about the Prospect Segmentation

                      declare @RESEARCHGROUPID uniqueidentifier;
                      declare @IDSETREGISTERID uniqueidentifier;

                      select
                          @RESEARCHGROUPID = RESEARCHGROUPID,
                          @IDSETREGISTERID = IDSETREGISTERID
                      from
                          PROSPECTSEGMENTATION
                      where
                          ID = @ID

                      -- Populate table variable of Prospects

                      declare @PROSPECTS as table(CONSTITUENTID uniqueidentifier)                                

                      --Select research group members

                      if @RESEARCHGROUPID is not null
                      begin

                          insert into @PROSPECTS
                          select
                              CONSTITUENTID
                          from 
                              dbo.RESEARCHGROUPMEMBER
                          where
                              RESEARCHGROUPID = @RESEARCHGROUPID
                      end

                      --Select selection members

                      if @IDSETREGISTERID is not null
                      begin
                          insert into @PROSPECTS
                          select
                              ID
                          from
                              dbo.UFN_IDSETREADER_GETRESULTS(@IDSETREGISTERID)
                      end

                      --Select all modeled constituents

                      if @RESEARCHGROUPID is null and @IDSETREGISTERID is null
                      begin
                          insert into @PROSPECTS
                          select
                              ID
                          from 
                              dbo.MODELINGANDPROPENSITY
                      end;    

                      -- Get section information

                      with SECTIONS(
                          ID,
                          SEQUENCE,
                          RANGELOW,
                          RANGEHIGH,
                          ESTIMATEDWEALTHLOWID,
                          ESTIMATEDWEALTHHIGHID,
                          MAJORGIVINGCAPACITYLOWID,
                          MAJORGIVINGCAPACITYHIGHID,
                          WEALTHESTIMATORRATINGLOWID,
                          WEALTHESTIMATORRATINGHIGHID,
                          TARGETGIFTRANGELOWID,
                          TARGETGIFTRANGEHIGHID,
                          SECTIONTYPE,
                          VARIABLETYPE
                      )as(
                          select
                              SECTION.ID,
                              SECTION.SEQUENCE,
                              nullif(SECTION.RANGELOW,-1) as RANGELOW,
                              nullif(SECTION.RANGEHIGH,-1) as RANGEHIGH,
                              SECTION.ESTIMATEDWEALTHLOWID,
                              SECTION.ESTIMATEDWEALTHHIGHID,
                              SECTION.MAJORGIVINGCAPACITYLOWID,
                              SECTION.MAJORGIVINGCAPACITYHIGHID,
                              SECTION.WEALTHESTIMATORRATINGLOWID,
                              SECTION.WEALTHESTIMATORRATINGHIGHID,
                              SECTION.TARGETGIFTRANGELOWID,
                              SECTION.TARGETGIFTRANGEHIGHID,
                              case VARIABLE.ISPRIMARY
                                  when 1 then 1
                                  when 0 then 2
                              end as SECTIONTYPE,
                              VARIABLE.TYPECODE
                          from
                              PROSPECTSEGMENTATIONSECTION SECTION
                          left join PROSPECTSEGMENTATIONVARIABLE VARIABLE on 
                              VARIABLE.ID = SECTION.VARIABLEID
                          where
                              VARIABLE.PROSPECTSEGMENTATIONID = @ID

                          union all

                          select
                              SECTION.ID,
                              SECTION.SEQUENCE,
                              nullif(SECTION.RANGE2LOW,-1) as RANGELOW,
                              nullif(SECTION.RANGE2HIGH,-1) as RANGEHIGH,
                              SECTION.ESTIMATEDWEALTH2LOWID,
                              SECTION.ESTIMATEDWEALTH2HIGHID,
                              SECTION.MAJORGIVINGCAPACITY2LOWID,
                              SECTION.MAJORGIVINGCAPACITY2HIGHID,
                              SECTION.WEALTHESTIMATORRATING2LOWID,
                              SECTION.WEALTHESTIMATORRATING2HIGHID,
                              SECTION.TARGETGIFTRANGE2LOWID,
                              SECTION.TARGETGIFTRANGE2HIGHID,
                              3,
                              VARIABLE.TYPE2CODE
                          from
                              PROSPECTSEGMENTATIONSECTION SECTION
                          left join PROSPECTSEGMENTATIONVARIABLE VARIABLE on 
                              VARIABLE.ID = SECTION.VARIABLEID
                          where
                              VARIABLE.PROSPECTSEGMENTATIONID = @ID and
                              VARIABLE.ISPRIMARY = 0 and
                              SECTION.LABEL2 != ''

                      ), 
                      SECTIONSWITHDATA(
                          ID,
                          SEQUENCE,
                          RANGELOW,
                          RANGEHIGH,
                          ESTIMATEDWEALTHLOW,
                          ESTIMATEDWEALTHHIGH,
                          MAJORGIVINGCAPACITYLOW,
                          MAJORGIVINGCAPACITYHIGH,
                          WEALTHESTIMATORRATINGLOW,
                          WEALTHESTIMATORRATINGHIGH,
                          TARGETGIFTRANGELOW,
                          TARGETGIFTRANGEHIGH,
                          SECTIONTYPE,
                          VARIABLETYPE
                      )as(
                          select
                              SECTIONS.ID,
                              SECTIONS.SEQUENCE,
                              SECTIONS.RANGELOW,
                              SECTIONS.RANGEHIGH,
                              ESTIMATEDWEALTHLOW.MINIMUMAMOUNT,
                              ESTIMATEDWEALTHHIGH.MINIMUMAMOUNT,
                              MAJORGIVINGCAPACITYLOW.MINIMUMAMOUNT,
                              MAJORGIVINGCAPACITYHIGH.MINIMUMAMOUNT,
                              WEALTHESTIMATORRATINGLOW.MINIMUMAMOUNT,
                              WEALTHESTIMATORRATINGHIGH.MINIMUMAMOUNT,
                              TARGETGIFTRANGELOW.MINIMUMAMOUNT,
                              TARGETGIFTRANGEHIGH.MINIMUMAMOUNT,
                              SECTIONS.SECTIONTYPE,
                              SECTIONS.VARIABLETYPE
                          from
                              SECTIONS
                          left join dbo.ESTIMATEDWEALTH ESTIMATEDWEALTHLOW on
                              ESTIMATEDWEALTHLOW.ID = SECTIONS.ESTIMATEDWEALTHLOWID    
                          left join dbo.ESTIMATEDWEALTH ESTIMATEDWEALTHHIGH on
                              ESTIMATEDWEALTHHIGH.ID = SECTIONS.ESTIMATEDWEALTHHIGHID    

                          left join dbo.MAJORGIVINGCAPACITY MAJORGIVINGCAPACITYLOW on
                              MAJORGIVINGCAPACITYLOW.ID = SECTIONS.MAJORGIVINGCAPACITYLOWID    
                          left join dbo.MAJORGIVINGCAPACITY MAJORGIVINGCAPACITYHIGH on
                              MAJORGIVINGCAPACITYHIGH.ID = SECTIONS.MAJORGIVINGCAPACITYHIGHID    

                          left join dbo.WEALTHESTIMATORRATING WEALTHESTIMATORRATINGLOW on
                              WEALTHESTIMATORRATINGLOW.ID = SECTIONS.WEALTHESTIMATORRATINGLOWID    
                          left join dbo.WEALTHESTIMATORRATING WEALTHESTIMATORRATINGHIGH on
                              WEALTHESTIMATORRATINGHIGH.ID = SECTIONS.WEALTHESTIMATORRATINGHIGHID    

                          left join dbo.TARGETGIFTRANGE TARGETGIFTRANGELOW on
                              TARGETGIFTRANGELOW.ID = SECTIONS.TARGETGIFTRANGELOWID
                          left join dbo.TARGETGIFTRANGE TARGETGIFTRANGEHIGH on
                              TARGETGIFTRANGEHIGH.ID = SECTIONS.TARGETGIFTRANGEHIGHID    
                      )  
                      --Update prospects table         

                      insert into 
                          dbo.PROSPECTSEGMENTATIONPROSPECT
                      (
                          CONSTITUENTID,
                          PRIMARYSECTIONID,
                          SECONDARYSECTIONID,
                          ADDEDBYID,
                          CHANGEDBYID,
                          DATEADDED,
                          DATECHANGED
                      )
                      --Select best match

                      select
                          CONSTITUENTID,
                          PRIMARYSECTIONS.ID as PRIMARYSECTIONID,
                          case
                              when isnull(SECONDARYSECTIONS1.SEQUENCE,0) >= isnull(SECONDARYSECTIONS2.SEQUENCE,0) then
                                  SECONDARYSECTIONS1.ID 
                              when isnull(SECONDARYSECTIONS1.SEQUENCE,0) < isnull(SECONDARYSECTIONS2.SEQUENCE,0) then
                                  SECONDARYSECTIONS2.ID 
                          end as SECONDARYSECTIONID,
                          @CHANGEAGENTID,
                          @CHANGEAGENTID,
                           @CURRENTDATE,
                            @CURRENTDATE    
                      from
                          @PROSPECTS

                      --Join to scoring tables

                      left join dbo.WEALTHCAPACITY on
                          WEALTHCAPACITY.ID = CONSTITUENTID    
                      left join dbo.MODELINGANDPROPENSITY on
                          MODELINGANDPROPENSITY.ID = CONSTITUENTID

                      --Join to range tables

                      left join dbo.ESTIMATEDWEALTH on
                          ESTIMATEDWEALTH.ID = WEALTHCAPACITY.ESTIMATEDWEALTHID    
                      left join dbo.MAJORGIVINGCAPACITY on
                          MAJORGIVINGCAPACITY.ID = WEALTHCAPACITY.MAJORGIVINGCAPACITYID

                      left join dbo.TARGETGIFTRANGE on
                          TARGETGIFTRANGE.ID = MODELINGANDPROPENSITY.TARGETGIFTRANGEID
                      left join dbo.WEALTHESTIMATORRATING on
                          WEALTHESTIMATORRATING.ID = MODELINGANDPROPENSITY.WEALTHESTIMATORRATINGID

                      --Join to sections

                      left join SECTIONSWITHDATA PRIMARYSECTIONS on
                          PRIMARYSECTIONS.SECTIONTYPE = 1 and
                          ((PRIMARYSECTIONS.VARIABLETYPE = 1 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.ANNUALGIFTLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.ANNUALGIFTLIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 2 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.ANNUITYLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.ANNUITYLIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 3 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.BEQUESTLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.BEQUESTLIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 4 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.CRTLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.CRTLIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 5 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.MAJORGIVINGLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.MAJORGIVINGLIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 6 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.MEMBERSHIPLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.MEMBERSHIPLIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 7 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.ONLINEGIVINGLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.ONLINEGIVINGLIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 8 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.PATIENTRESPONSELIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.PATIENTRESPONSELIKELIHOOD) or
                           (PRIMARYSECTIONS.VARIABLETYPE = 9 and PRIMARYSECTIONS.RANGELOW <= MODELINGANDPROPENSITY.PLANNEDGIFTLIKELIHOOD and  
                                                                 PRIMARYSECTIONS.RANGEHIGH >= MODELINGANDPROPENSITY.PLANNEDGIFTLIKELIHOOD) or
                           (PRIMARYSECTIONS.ESTIMATEDWEALTHLOW <= ESTIMATEDWEALTH.MINIMUMAMOUNT and PRIMARYSECTIONS.ESTIMATEDWEALTHHIGH >= ESTIMATEDWEALTH.MINIMUMAMOUNT) or
                           (PRIMARYSECTIONS.MAJORGIVINGCAPACITYLOW <= MAJORGIVINGCAPACITY.MINIMUMAMOUNT and PRIMARYSECTIONS.MAJORGIVINGCAPACITYHIGH >= MAJORGIVINGCAPACITY.MINIMUMAMOUNT) or
                           (PRIMARYSECTIONS.TARGETGIFTRANGELOW <= TARGETGIFTRANGE.MINIMUMAMOUNT and PRIMARYSECTIONS.TARGETGIFTRANGEHIGH >= TARGETGIFTRANGE.MINIMUMAMOUNT) or
                           (PRIMARYSECTIONS.WEALTHESTIMATORRATINGLOW <= WEALTHESTIMATORRATING.MINIMUMAMOUNT and PRIMARYSECTIONS.WEALTHESTIMATORRATINGHIGH >= WEALTHESTIMATORRATING.MINIMUMAMOUNT))

                      left join SECTIONSWITHDATA SECONDARYSECTIONS1 on
                          SECONDARYSECTIONS1.SECTIONTYPE = 2 and
                          ((SECONDARYSECTIONS1.VARIABLETYPE = 1 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.ANNUALGIFTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.ANNUALGIFTLIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 2 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.ANNUITYLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.ANNUITYLIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 3 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.BEQUESTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.BEQUESTLIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 4 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.CRTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.CRTLIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 5 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.MAJORGIVINGLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.MAJORGIVINGLIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 6 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.MEMBERSHIPLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.MEMBERSHIPLIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 7 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.ONLINEGIVINGLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.ONLINEGIVINGLIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 8 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.PATIENTRESPONSELIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.PATIENTRESPONSELIKELIHOOD) or
                           (SECONDARYSECTIONS1.VARIABLETYPE = 9 and SECONDARYSECTIONS1.RANGELOW <= MODELINGANDPROPENSITY.PLANNEDGIFTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS1.RANGEHIGH >= MODELINGANDPROPENSITY.PLANNEDGIFTLIKELIHOOD) or
                           (SECONDARYSECTIONS1.ESTIMATEDWEALTHLOW <= ESTIMATEDWEALTH.MINIMUMAMOUNT and SECONDARYSECTIONS1.ESTIMATEDWEALTHHIGH >= ESTIMATEDWEALTH.MINIMUMAMOUNT) or
                           (SECONDARYSECTIONS1.MAJORGIVINGCAPACITYLOW <= MAJORGIVINGCAPACITY.MINIMUMAMOUNT and SECONDARYSECTIONS1.MAJORGIVINGCAPACITYHIGH >= MAJORGIVINGCAPACITY.MINIMUMAMOUNT) or
                           (SECONDARYSECTIONS1.TARGETGIFTRANGELOW <= TARGETGIFTRANGE.MINIMUMAMOUNT and SECONDARYSECTIONS1.TARGETGIFTRANGEHIGH >= TARGETGIFTRANGE.MINIMUMAMOUNT) or
                           (SECONDARYSECTIONS1.WEALTHESTIMATORRATINGLOW <= WEALTHESTIMATORRATING.MINIMUMAMOUNT and SECONDARYSECTIONS1.WEALTHESTIMATORRATINGHIGH >= WEALTHESTIMATORRATING.MINIMUMAMOUNT))

                      left join SECTIONSWITHDATA SECONDARYSECTIONS2 on
                          SECONDARYSECTIONS2.SECTIONTYPE = 3 and
                          ((SECONDARYSECTIONS2.VARIABLETYPE = 1 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.ANNUALGIFTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.ANNUALGIFTLIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 2 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.ANNUITYLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.ANNUITYLIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 3 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.BEQUESTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.BEQUESTLIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 4 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.CRTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.CRTLIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 5 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.MAJORGIVINGLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.MAJORGIVINGLIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 6 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.MEMBERSHIPLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.MEMBERSHIPLIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 7 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.ONLINEGIVINGLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.ONLINEGIVINGLIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 8 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.PATIENTRESPONSELIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.PATIENTRESPONSELIKELIHOOD) or
                           (SECONDARYSECTIONS2.VARIABLETYPE = 9 and SECONDARYSECTIONS2.RANGELOW <= MODELINGANDPROPENSITY.PLANNEDGIFTLIKELIHOOD and  
                                                                    SECONDARYSECTIONS2.RANGEHIGH >= MODELINGANDPROPENSITY.PLANNEDGIFTLIKELIHOOD) or
                           (SECONDARYSECTIONS2.ESTIMATEDWEALTHLOW <= ESTIMATEDWEALTH.MINIMUMAMOUNT and SECONDARYSECTIONS2.ESTIMATEDWEALTHHIGH >= ESTIMATEDWEALTH.MINIMUMAMOUNT) or
                           (SECONDARYSECTIONS2.MAJORGIVINGCAPACITYLOW <= MAJORGIVINGCAPACITY.MINIMUMAMOUNT and SECONDARYSECTIONS2.MAJORGIVINGCAPACITYHIGH >= MAJORGIVINGCAPACITY.MINIMUMAMOUNT) or
                           (SECONDARYSECTIONS2.TARGETGIFTRANGELOW <= TARGETGIFTRANGE.MINIMUMAMOUNT and SECONDARYSECTIONS2.TARGETGIFTRANGEHIGH >= TARGETGIFTRANGE.MINIMUMAMOUNT) or
                           (SECONDARYSECTIONS2.WEALTHESTIMATORRATINGLOW <= WEALTHESTIMATORRATING.MINIMUMAMOUNT and SECONDARYSECTIONS2.WEALTHESTIMATORRATINGHIGH >= WEALTHESTIMATORRATING.MINIMUMAMOUNT))

              where 
                PRIMARYSECTIONS.ID is not null and
                (SECONDARYSECTIONS1.ID is not null or SECONDARYSECTIONS2.ID is not null)

                      group by
                          PRIMARYSECTIONS.ID,
                          case
                              when isnull(SECONDARYSECTIONS1.SEQUENCE,0) >= isnull(SECONDARYSECTIONS2.SEQUENCE,0) then
                                  SECONDARYSECTIONS1.ID 
                              when isnull(SECONDARYSECTIONS1.SEQUENCE,0) < isnull(SECONDARYSECTIONS2.SEQUENCE,0) then
                                  SECONDARYSECTIONS2.ID 
                          end,
                          CONSTITUENTID;


                      --Finally, Update the Prospect Segmentation

                      Update 
                          dbo.PROSPECTSEGMENTATION
                      set
                          STATUSCODE = 0,
              DATEUPDATED = @CURRENTDATE,
              CHANGEDBYID = @CHANGEAGENTID,
              DATECHANGED = @CURRENTDATE
                      where
                          ID = @ID;

                        return 0;
                    end