fnFundRaiserTotalDonationAmount
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FundRaiserID | int | IN |
Definition
Copy
CREATE function [dbo].[fnFundRaiserTotalDonationAmount]
(@FundRaiserID int)
RETURNS @retTotalDonation TABLE (FREmailID int,Total money)
/* Changes to this function should be mirrored in fnFundRaiserTotalDonationAmountBySolicitorEmailID */
AS
BEGIN
DECLARE @temp TABLE (FREmailID int, Total money)
DECLARE @FRETable table(EmailID int, FRDID int, SolicitorID int, Amount money, AthonUnits int, IsAthon bit)
Insert Into @FRETable
SELECT frse.ID, frd.id, Solicitor.ID, frd.Amount, Solicitor.AthonUnits, frd.IsAthon
FROM dbo.FundraiserSolicitorEmail frse
inner join dbo.FundraiserSolicitors Solicitor on Solicitor.ID = frse.FundRaiserSolicitorsID and Solicitor.RootFundraiserID = @FundRaiserID
inner join dbo.EmailJob_Recipient ejr on ejr.EmailJobID = frse.EmailJobID
inner join dbo.FundRaiserSolicitorContactAction frsca on ejr.ID = isnull(frsca.EmailJobRecipientID, frsca.ForwardEmailJobRecipientID)
inner join FundRaiserDonations frd ON frd.id = frsca.FundRaiserDonationsID
insert into @temp (FREmailID, Total)
SELECT EmailID, isnull(sum(Amount),0)
FROM @FRETable
WHERE IsAthon = 0
Group By EmailID
insert into @temp (FREmailID, Total)
SELECT EmailID, isnull(sum(Amount * AthonUnits),0)
FROM @FRETable
WHERE IsAthon = 1 and not exists (select null from dbo.FundRaiserDonations frd where frd.PledgeID = FRDID)
Group By EmailID
insert into @retTotalDonation (FREmailID,Total)
select FREmailID, sum(Total) Total from @temp group by FREmailID order by 2 desc
return
END