USP_SMARTFIELD_TOTALDONATIONAMOUNTRAISEDPARTICIPANT_TIMESPAN

Parameters

Parameter Parameter Type Mode Description
@WEEKORMONTHCODE tinyint IN
@ASOF datetime IN

Definition

Copy


CREATE procedure dbo.USP_SMARTFIELD_TOTALDONATIONAMOUNTRAISEDPARTICIPANT_TIMESPAN
(
     @WEEKORMONTHCODE tinyint= 1,
     @ASOF datetime 
)
as

set nocount on

-- write sql to calculate the smart field values based on the parameters and ASOF date

BEGIN
    IF @ASOF IS NULL SET @ASOF= getdate()

    IF @WEEKORMONTHCODE= 1

        SELECT    RG.ID, SUM(RS.AMOUNT) AS REGISTRANTDONATION 
        FROM    dbo.REVENUE R            (NOLOCK)
        JOIN    dbo.REVENUESPLIT RS        (NOLOCK) ON R.ID = RS.REVENUEID
        JOIN    dbo.REGISTRANT RG        (NOLOCK) ON R.CONSTITUENTID = RG.CONSTITUENTID
        JOIN    dbo.EVENTEXTENSION EE    (NOLOCK) ON RG.EVENTID = EE.EVENTID
        WHERE    RS.TYPECODE = 0
        AND        R.TRANSACTIONTYPECODE = 0
        AND        RG.DATEADDED    < getdate() -7
        GROUP BY RG.ID
        ORDER BY RG.ID        
    ELSE

        SELECT    RG.ID, SUM(RS.AMOUNT) AS REGISTRANTDONATION 
        FROM    dbo.REVENUE R            (NOLOCK)
        JOIN    dbo.REVENUESPLIT RS        (NOLOCK) ON R.ID = RS.REVENUEID
        JOIN    dbo.REGISTRANT RG        (NOLOCK) ON R.CONSTITUENTID = RG.CONSTITUENTID
        JOIN    dbo.EVENTEXTENSION EE    (NOLOCK) ON RG.EVENTID = EE.EVENTID
        WHERE    RS.TYPECODE = 0
        AND        R.TRANSACTIONTYPECODE = 0
        AND        RG.DATEADDED    BETWEEN    CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,-1,getdate()))-1),DATEADD(mm,-1,getdate())),101)  
                                AND        CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(getdate())),getdate()),101
        GROUP BY RG.ID
        ORDER BY RG.ID            
END