USP_DATALIST_FAFREGISTRANTCOUNT_UNITPERFORMANCE

Data list for FAF registrant count unit performance.

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


CREATE procedure dbo.USP_DATALIST_FAFREGISTRANTCOUNT_UNITPERFORMANCE(@EVENTID uniqueidentifier)
as
    set nocount on;

    declare @TEMP_REGISTRANTTOTAL as table
    (        
        ID uniqueidentifier,
        TOTAL money
    );

  insert into @TEMP_REGISTRANTTOTAL
    (        
        ID, TOTAL
    )
  select 
    ER.ID,
    ISNULL(dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(ER.ID, ER.EVENTID), 0) as [TOTAL]
  from REGISTRANT ER 
  where ER.EVENTID = @EVENTID;

    declare  @TEMP_REGISTRANTGROUPTOTAL as table
    (        
        NAME nvarchar(100),
        NUMBERCOUNT int,
        ORDERNUMBER int
    );

    -- total=0

    insert into @TEMP_REGISTRANTGROUPTOTAL
    (        
        NAME, NUMBERCOUNT, ORDERNUMBER
    )
    select 
        '$0' 
        , COUNT(*)
        , '1'
    from @TEMP_REGISTRANTTOTAL RT 
    where RT.TOTAL = 0;

    -- total<=50

    insert into @TEMP_REGISTRANTGROUPTOTAL
    (        
        NAME, NUMBERCOUNT, ORDERNUMBER
    )
    select 
        '$1-$50'
        , COUNT(*)
        , '2'
    from @TEMP_REGISTRANTTOTAL RT 
    where RT.TOTAL > 0 AND RT.TOTAL <= 50;

    -- 50<total<=250

    insert into @TEMP_REGISTRANTGROUPTOTAL
    (        
        NAME, NUMBERCOUNT, ORDERNUMBER
    )
    select 
        '$51-$250'
        , COUNT(*)
        , '3'
    from @TEMP_REGISTRANTTOTAL RT 
    where RT.TOTAL > 50 AND RT.TOTAL <= 250;

    -- 250<total<=500

    insert into @TEMP_REGISTRANTGROUPTOTAL
    (        
        NAME, NUMBERCOUNT, ORDERNUMBER
    )
    select 
        '$251-$500'
        , COUNT(*)
        , '4'
    from @TEMP_REGISTRANTTOTAL RT 
    where RT.TOTAL > 250 AND RT.TOTAL <= 500;

    -- 500<total<=1000

    insert into @TEMP_REGISTRANTGROUPTOTAL
    (        
        NAME, NUMBERCOUNT, ORDERNUMBER
    )
    select 
        '$501-$1000'
        , COUNT(*)
        , '5'
    from @TEMP_REGISTRANTTOTAL RT 
    where RT.TOTAL > 500 AND RT.TOTAL <= 1000;

    -- total>1000

    insert into @TEMP_REGISTRANTGROUPTOTAL
    (        
        NAME, NUMBERCOUNT, ORDERNUMBER
    )
    select 
        '$1001+'
        , COUNT(*)
        , '6'
    from @TEMP_REGISTRANTTOTAL RT 
    where RT.TOTAL > 1000;

    select NAME
        ,NUMBERCOUNT
    from @TEMP_REGISTRANTGROUPTOTAL
    order by ORDERNUMBER