USP_REPORT_PROSPECTANALYSIS_PROSPECTSEGMENTATION

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_REPORT_PROSPECTANALYSIS_PROSPECTSEGMENTATION
            (
                @ID uniqueidentifier
            ) as
                set nocount on;

                with GROUPEDPROSPECTS(
                    COUNT,
                    PRIMARYSECTIONID, 
                    SECONDARYSECTIONID
                )as(
                    select
                        count(PROSPECT.CONSTITUENTID),
                        PROSPECT.PRIMARYSECTIONID,
                        PROSPECT.SECONDARYSECTIONID
                    from
                        dbo.PROSPECTSEGMENTATIONPROSPECT PROSPECT

                    left join dbo.PROSPECTSEGMENTATIONSECTION PRIMARYSECTION on
                        PRIMARYSECTION.ID = PROSPECT.PRIMARYSECTIONID
                    left join dbo.PROSPECTSEGMENTATIONVARIABLE PRIMARYVARIABLE on
                        PRIMARYVARIABLE.ID = PRIMARYSECTION.VARIABLEID

                    left join dbo.PROSPECTSEGMENTATIONSECTION SECONDARYSECTION on
                        SECONDARYSECTION.ID = PROSPECT.SECONDARYSECTIONID
                    left join dbo.PROSPECTSEGMENTATIONVARIABLE SECONDARYVARIABLE on
                        SECONDARYVARIABLE.ID = SECONDARYSECTION.VARIABLEID    

                    where
                        PRIMARYVARIABLE.PROSPECTSEGMENTATIONID   = @ID and
                        SECONDARYVARIABLE.PROSPECTSEGMENTATIONID = @ID

                    group by
                        PRIMARYSECTIONID, SECONDARYSECTIONID
                ) 
                select
                    PRIMARYVARIABLE.TYPE PRIMARYVARIABLETYPE,
                    PRIMARYSECTION.LABEL PRIMARYSECTIONLABEL,
                    PRIMARYSECTION.SEQUENCE PRIMARYSECTIONSEQUENCE,

          --Combined Secondary Variable Type

                    case
                        when SECONDARYVARIABLE.TYPE2CODE = 0 then SECONDARYVARIABLE.TYPE
                        else SECONDARYVARIABLE.TYPE + ' OR ' + SECONDARYVARIABLE.TYPE2
                    end as SECONDARYVARIABLETYPE,
          --Combined Secondary Variable Label

                    case
                        when SECONDARYSECTION.LABEL2 = '' then SECONDARYSECTION.LABEL
                        else SECONDARYSECTION.LABEL + char(13) + char(10) + SECONDARYSECTION.LABEL2
                    end as SECONDARYVARIABLELABEL,
                    SECONDARYSECTION.SEQUENCE SECONDARYSECTIONSEQUENCE,

                    isnull(GROUPEDPROSPECTS.COUNT,0) as SEGMENTCOUNT,

                    cast(PRIMARYSECTION.ID as nvarchar(36)) + 
                    cast(SECONDARYSECTION.ID as nvarchar(36))  as SEGMENTID

                from
                    dbo.PROSPECTSEGMENTATION    

                --Primary Variable

                left join dbo.PROSPECTSEGMENTATIONVARIABLE PRIMARYVARIABLE on
                    PRIMARYVARIABLE.PROSPECTSEGMENTATIONID = PROSPECTSEGMENTATION.ID and
                    PRIMARYVARIABLE.ISPRIMARY = 1
                left join dbo.PROSPECTSEGMENTATIONSECTION PRIMARYSECTION on
                    PRIMARYSECTION.VARIABLEID = PRIMARYVARIABLE.ID

                --Secondary Variable                   

                left join dbo.PROSPECTSEGMENTATIONVARIABLE SECONDARYVARIABLE on
                    SECONDARYVARIABLE.PROSPECTSEGMENTATIONID = PROSPECTSEGMENTATION.ID and
                    SECONDARYVARIABLE.ISPRIMARY = 0               
                left join dbo.PROSPECTSEGMENTATIONSECTION SECONDARYSECTION on
                    SECONDARYSECTION.VARIABLEID = SECONDARYVARIABLE.ID

                -- Results

                left join GROUPEDPROSPECTS on
                    GROUPEDPROSPECTS.PRIMARYSECTIONID =   PRIMARYSECTION.ID and
                    GROUPEDPROSPECTS.SECONDARYSECTIONID = SECONDARYSECTION.ID

        where
          PROSPECTSEGMENTATION.ID = @ID