USP_REPORT_APPEALPROGRESSSUMMARY_MAIN_WITHIDSET
Alternate version of USP_REPORT_APPEALPROGRESSSUMMARY_MAIN which allows for the inclusion of an ID set.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@IDSETID | uniqueidentifier | IN |
Definition
Copy
/*
Generated by Blackbaud Application Framework
Date: 12/17/2008 2:13:48 AM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=1.7.1271.0, Culture=neutral, PublicKeyToken=null
*/
create procedure dbo.USP_REPORT_APPEALPROGRESSSUMMARY_MAIN_WITHIDSET (@IDSETID uniqueidentifier = null)
with execute as owner
as
set nocount on;
declare @r int;
if @IDSETID is null
begin
exec @r = dbo.[USP_REPORT_APPEALPROGRESSSUMMARY_MAIN];
end
else
begin
if not exists(select [ID] from dbo.[IDSETREGISTER] where [ID] = @IDSETID)
raiserror('ID set does not exist in the database.', 15, 1);
declare @DBOBJECTNAME nvarchar(max);
declare @DBOBJECTTYPE smallint;
declare @SQLTOEXEC nvarchar(max);
select
@DBOBJECTNAME = [DBOBJECTNAME],
@DBOBJECTTYPE = [OBJECTTYPE]
from dbo.[IDSETREGISTER]
where [ID] = @IDSETID;
if left(@DBOBJECTNAME, 1) <> '['
set @DBOBJECTNAME = '[' + @DBOBJECTNAME + ']';
if @DBOBJECTTYPE = 1
begin
set @DBOBJECTNAME = @DBOBJECTNAME + '(';
set @DBOBJECTNAME = @DBOBJECTNAME + ')';
end
else
begin
if @DBOBJECTTYPE = 2
set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @IDSETID) + ''')';
end
set @SQLTOEXEC = N'select
APPEAL.NAME,
APPEAL.GOAL,
(
select count(distinct CONSTITUENTAPPEAL.CONSTITUENTID)
from dbo.CONSTITUENTAPPEAL
where CONSTITUENTAPPEAL.APPEALID = APPEAL.ID
) as [NUMBERSOLICITED],
coalesce(( --Get gifts, pledges, and recurring gift payments
select coalesce(sum(AMOUNT), 0)
from dbo.REVENUE
inner join dbo.' + @DBOBJECTNAME + ' as [IDSET_249b5c4a_6315_4f95_9799_3f56d9bd65c6] on [APPEAL].[ID] = [IDSET_249b5c4a_6315_4f95_9799_3f56d9bd65c6].[ID]
where REVENUE.APPEALID = APPEAL.ID
and REVENUE.TYPECODE in (0, 1, 3, 5)
), 0)
-
coalesce(( --Subtract write-offs of the above pledges
select (select sum(AMOUNT) from dbo.INSTALLMENTWRITEOFF where WRITEOFFID = WRITEOFF.ID)
from dbo.WRITEOFF
left join dbo.REVENUE on REVENUE.ID = WRITEOFF.REVENUEID
where REVENUE.APPEALID = APPEAL.ID
), 0) as [TOTALREVENUE],
coalesce(( --Get gifts, pledge payments, and recurring gift payments
select coalesce(sum(AMOUNT), 0)
from dbo.REVENUE
where REVENUE.APPEALID = APPEAL.ID
and REVENUE.TYPECODE in (0, 4, 5)
), 0) as [ACTUALREVENUE],
(
select count(REVENUE.ID)
from dbo.REVENUE
where REVENUE.APPEALID = APPEAL.ID
and REVENUE.TYPECODE in (0, 1, 3, 5)
) as [NUMBEROFGIFTS],
(
select count(distinct CONSTITUENTID)
from dbo.REVENUE
where REVENUE.APPEALID = APPEAL.ID
and REVENUE.TYPECODE in (0, 1, 3, 5)
) as [NUMBEROFDONORS],
(
select coalesce(avg(AMOUNT), 0)
from dbo.REVENUE
where REVENUE.APPEALID = APPEAL.ID
and REVENUE.TYPECODE in (0, 1, 3, 5)
) as [AVGGIFTAMOUNT]
from dbo.APPEAL
inner join dbo.' + @DBOBJECTNAME + ' as [IDSET_249b5c4a_6315_4f95_9799_3f56d9bd65c6] on [APPEAL].[ID] = [IDSET_249b5c4a_6315_4f95_9799_3f56d9bd65c6].[ID]
where APPEAL.ISACTIVE = 1';
exec @r = sp_executesql @SQLTOEXEC;
end
return @r;