USP_DATALIST_CONSTITUENT_GIVINGSTATISTICS
This returns a list containing a constituent's largest, first, and latest gifts.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure USP_DATALIST_CONSTITUENT_GIVINGSTATISTICS(@CONSTITUENTID as uniqueidentifier)
as
set nocount on;
select
ID,
RECORDID,
DATE,
TRANSACTIONTYPECODE,
TRANSACTIONTYPE,
EXTREMITY
from ((
select top 1
R.ID,
R.ID RECORDID,
R.DATE,
R.TRANSACTIONTYPECODE,
R.TRANSACTIONTYPE,
'Largest' EXTREMITY
from
dbo.REVENUE R
left join
dbo.WRITEOFF WO
on
WO.REVENUEID = R.ID
left join
dbo.INSTALLMENTWRITEOFF IWO
on
IWO.WRITEOFFID = WO.ID
where
((R.TRANSACTIONTYPECODE = 1) or --Pledge
(R.TRANSACTIONTYPECODE = 7) or --Auction donation
((R.TRANSACTIONTYPECODE = 0) and exists(select top 1 ID from REVENUESPLIT where REVENUEID = R.ID and APPLICATIONCODE in (0, 3)))) and --Payment (Gift or Recurring gift payment)
R.CONSTITUENTID = @CONSTITUENTID
group by
R.ID, R.AMOUNT, R.TRANSACTIONTYPE, R.TRANSACTIONTYPECODE, R.DATE
order by
(R.AMOUNT - sum(coalesce(IWO.AMOUNT,0))) desc, R.DATE desc
) union all (
select top 1
R.ID,
R.ID,
R.DATE,
R.TRANSACTIONTYPECODE,
R.TRANSACTIONTYPE,
'First'
from
dbo.REVENUE R
where
((R.TRANSACTIONTYPECODE = 1) or --Pledge
(R.TRANSACTIONTYPECODE = 7) or --Auction donation
((R.TRANSACTIONTYPECODE = 0) and exists(select top 1 ID from REVENUESPLIT where REVENUEID = R.ID and APPLICATIONCODE in (0, 3)))) and --Payment (Gift or Recurring gift payment)
R.CONSTITUENTID = @CONSTITUENTID
order by
R.DATE asc, R.AMOUNT desc
) union all (
select top 1
R.ID,
R.ID,
R.DATE,
R.TRANSACTIONTYPECODE,
R.TRANSACTIONTYPE,
'Latest'
from
dbo.REVENUE R
where
((R.TRANSACTIONTYPECODE = 1) or --Pledge
(R.TRANSACTIONTYPECODE = 7) or --Auction donation
((R.TRANSACTIONTYPECODE = 0) and exists(select top 1 ID from REVENUESPLIT where REVENUEID = R.ID and APPLICATIONCODE in (0, 3)))) and --Payment (Gift or Recurring gift payment)
R.CONSTITUENTID = @CONSTITUENTID
order by
R.DATE desc, R.AMOUNT desc
)) as GIVINGSTATISTICSLIST;