USP_REPORT_VSESECONDARY_SECTION4D_PART2
Returns VSE secondary report Section 4d part 2 data.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@INCLUDEINACTIVE | smallint | IN | |
@INCLUDEDECEASED | smallint | IN | |
@USEGIFTDATE | smallint | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_VSESECONDARY_SECTION4D_PART2
(
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@INCLUDEINACTIVE smallint = 0,
@INCLUDEDECEASED smallint = 0,
@USEGIFTDATE smallint = 0
)
with execute as owner
as
set nocount on;
declare @RESULTS table
(
LABEL nvarchar(150),
LARGEST money,
SECOND_LARGEST money,
THIRD_LARGEST money
);
declare @TOTALS table
(
TOTAL money,
CONSTITUENTID uniqueidentifier
);
declare @CONSTITUENTID1 uniqueidentifier;
declare @CONSTITUENTID2 uniqueidentifier;
insert into @RESULTS
(LABEL)
values
('1. Corporations');
insert into @TOTALS
select top 3
sum(REPORT_VSESECONDARY.REVENUESPLITAMOUNT) as TOTAL_AMOUNT,
REPORT_VSESECONDARY.CONSTITUENTID as CONSTITUENTID
from
dbo.UFN_REPORT_VSESECONDARY(@STARTDATE, @ENDDATE, @INCLUDEINACTIVE, @INCLUDEDECEASED, @USEGIFTDATE) as REPORT_VSESECONDARY
where
REPORT_VSESECONDARY.VSECONSTITUENCYCODE = 14
group by REPORT_VSESECONDARY.CONSTITUENTID
order by TOTAL_AMOUNT desc
update @RESULTS
set
LARGEST = TOTALS.TOTAL,
@CONSTITUENTID1 = TOTALS.CONSTITUENTID
from
(select top 1 * from @TOTALS) as TOTALS
update @RESULTS
set
SECOND_LARGEST = TOTALS.TOTAL,
@CONSTITUENTID2 = TOTALS.CONSTITUENTID
from
(select top 1 * from @TOTALS where CONSTITUENTID <> @CONSTITUENTID1) as TOTALS
update @RESULTS
set
THIRD_LARGEST = TOTALS.TOTAL
from
(select top 1 * from @TOTALS where CONSTITUENTID <> @CONSTITUENTID1 and CONSTITUENTID <> @CONSTITUENTID2) as TOTALS
select
LABEL,
coalesce(LARGEST, 0) as LARGEST,
coalesce(SECOND_LARGEST, 0) as SECOND_LARGEST,
coalesce(THIRD_LARGEST, 0) as THIRD_LARGEST
from
@RESULTS;