UFN_FAFGROUP_GETCATEGORIZEDCOUNTANDAMOUNT

Return

Return Type
table

Definition

Copy


CREATE function dbo.UFN_FAFGROUP_GETCATEGORIZEDCOUNTANDAMOUNT()
returns table
as 
    return     
    select 
        top (select COUNT(*) from TEAMEXTENSION (nolock))
        GroupsAndMembers.GROUPID,    
        FR.[EVENTID],
        GIFTCOUNT_PARTICIPANTS = SUM(case when GroupsAndMembers.ISGROUP = 1 then 0 else isnull(FR.[GIFTCOUNT_ALL], 0) end),
        GIFTCOUNT_ONLINE = SUM(FR.[GIFTCOUNT_ONLINE]),
        GIFTCOUNT_OFFLINE = SUM(FR.[GIFTCOUNT_OFFLINE]),
        GIFTCOUNT_FROMEMAIL = SUM(FR.[GIFTCOUNT_FROMEMAIL]),
        GIFTCOUNT_FROMSOCIALMEDIA = SUM(FR.[GIFTCOUNT_FROMSOCIALMEDIA]),
        GIFTCOUNT_SELF = SUM(FR.[GIFTCOUNT_SELF]),
        AMOUNT_PARTICIPANTS = SUM(case when GroupsAndMembers.ISGROUP = 1 then 0 else isnull(FR.[AMOUNT_ALL], 0) end),
        AMOUNT_ONLINE = SUM(FR.[AMOUNT_ONLINE]),
        AMOUNT_OFFLINE = SUM(FR.[AMOUNT_OFFLINE]),
        AMOUNT_FROMEMAIL = SUM(FR.[AMOUNT_FROMEMAIL]),
        AMOUNT_FROMSOCIALMEDIA = SUM(FR.[AMOUNT_FROMSOCIALMEDIA]),
        AMOUNT_SELF = SUM(FR.[AMOUNT_SELF]),
        AMOUNT_PENDING = SUM(FR.[AMOUNTPENDING])

    from dbo.[FAFRAISEDTOTAL_CATEGORIZED] FR (nolock)
    inner join 
    (    select ISGROUP = 1, GROUPID = [PARENTID], [TEAMID], [CONSTITUENTID], [EVENTID] from dbo.[UFN_FAFGROUP_GETALLGROUPS]()
            union    
        select ISGROUP = 0, GROUPID = F.[PARENTID], F.[TEAMID], TF.[CONSTITUENTID], F.[EVENTID] from dbo.[UFN_FAFGROUP_GETALLGROUPS]() F
        inner join dbo.[TEAMFUNDRAISINGTEAMMEMBER] TFTM (nolock) on TFTM.[TEAMFUNDRAISINGTEAMID] = F.[TeamID]
        inner join dbo.[TEAMFUNDRAISER] TF (nolock) on TF.[ID] = TFTM.[TEAMFUNDRAISERID]
        group by F.[PARENTID], F.[TEAMID], F.[EVENTID], TF.[CONSTITUENTID]
    ) GroupsAndMembers
    on FR.[CONSTITUENTID] = GroupsAndMembers.[CONSTITUENTID] and FR.[EVENTID] = GroupsAndMembers.[EVENTID]   
    group by GroupsAndMembers.GROUPID, FR.[EVENTID]