USP_SMARTFIELD_TOTALDONATIONAMOUNTRAISEDTEAM
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TIMESPANCODE | tinyint | IN | |
@ASOF | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_SMARTFIELD_TOTALDONATIONAMOUNTRAISEDTEAM
(
@TIMESPANCODE tinyint= 0,
@ASOF datetime
)
as
set nocount on
;With [GroupDonation] (TeamID, ParentID, AMOUNT)
As
(
select TFT.ID as teamid, TFT.PARENTTEAMID, RS.AMOUNT
from dbo.TEAMFUNDRAISINGTEAM TFT
join dbo.TEAMEXTENSION TE ON TFT.ID = TE.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM ON TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID
join dbo.TEAMFUNDRAISER TF on TFTM.TEAMFUNDRAISERID = TF.ID
join dbo.REVENUERECOGNITION RC ON TF.CONSTITUENTID = RC.CONSTITUENTID
join dbo.REVENUESPLIT RS on RC.REVENUESPLITID = RS.ID and RS.APPLICATIONCODE = 0
where
(@TIMESPANCODE = 1 and RS.DATEADDED between DATEADD(WEEK, -1, @ASOF) and @ASOF )
union all
select TFT.ID as teamid, TFT.PARENTTEAMID, RS.AMOUNT
from dbo.TEAMFUNDRAISINGTEAM TFT
join dbo.TEAMEXTENSION TE ON TFT.ID = TE.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM ON TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID
join dbo.TEAMFUNDRAISER TF on TFTM.TEAMFUNDRAISERID = TF.ID
join dbo.REVENUERECOGNITION RC ON TF.CONSTITUENTID = RC.CONSTITUENTID
join dbo.REVENUESPLIT RS on RC.REVENUESPLITID = RS.ID and RS.APPLICATIONCODE = 0
where
(@TIMESPANCODE = 2 and RS.DATEADDED between DATEADD(MONTH, -1, @ASOF) and @ASOF)
union all
select TFT.ID as teamid, TFT.PARENTTEAMID, RS.AMOUNT
from dbo.TEAMFUNDRAISINGTEAM TFT
join dbo.TEAMEXTENSION TE ON TFT.ID = TE.TEAMFUNDRAISINGTEAMID
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM ON TFTM.TEAMFUNDRAISINGTEAMID = TFT.ID
join dbo.TEAMFUNDRAISER TF on TFTM.TEAMFUNDRAISERID = TF.ID
join dbo.REVENUERECOGNITION RC ON TF.CONSTITUENTID = RC.CONSTITUENTID
join dbo.REVENUESPLIT RS on RC.REVENUESPLITID = RS.ID and RS.APPLICATIONCODE = 0
where @TIMESPANCODE = 0
),
[Final]
As
(
select TeamID as ParentID, TeamID, AMOUNT
from [GroupDonation]
Union All
select F.ParentID, A.TeamID, A.AMOUNT
from [Final] F
join [GroupDonation] A on F.TeamID = A.ParentID
)
select ParentID as TeamID, SUM(AMOUNT) as Members
from [Final]
group by ParentID