USP_REPORT_CAMPAIGNPRIORITY
Retrieves the data for the campaign priority report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CAMPAIGNID | uniqueidentifier | IN | |
@CAMPAIGNPRIORITYTYPECODEID | uniqueidentifier | IN | |
@GROUPBY | tinyint | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CURRENCYCODE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_CAMPAIGNPRIORITY
(
@CAMPAIGNID uniqueidentifier,
@CAMPAIGNPRIORITYTYPECODEID uniqueidentifier = null,
@GROUPBY tinyint,
@STARTDATE datetime,
@ENDDATE datetime,
@CURRENCYCODE tinyint = null --0 = Record base, (null, 1) = Organization
)
as
set nocount on;
declare @SELECTEDCURRENCYID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
if coalesce(@CURRENCYCODE, 1) = 1
begin
set @SELECTEDCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
end
if @SELECTEDCURRENCYID is null
begin
select
@SELECTEDCURRENCYID = CAMPAIGN.BASECURRENCYID
from dbo.CAMPAIGN where ID = @CAMPAIGNID
end
select
@DECIMALDIGITS=CURRENCY.DECIMALDIGITS,
@ROUNDINGTYPECODE=CURRENCY.ROUNDINGTYPECODE
from dbo.CURRENCY
where ID = @SELECTEDCURRENCYID
if @GROUPBY = 1
begin
exec dbo.USP_REPORT_CAMPAIGNPRIORITYPROGRESSBYQUARTERINCURRENCY @CAMPAIGNID, @CAMPAIGNPRIORITYTYPECODEID, @STARTDATE, @ENDDATE, @CURRENCYCODE, @SELECTEDCURRENCYID;
end
else
begin
if @GROUPBY = 2
begin
WITH CAMPAIGNPRIORITY_CTE as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
CAMPAIGNSUBPRIORITY.ID as CAMPAIGNSUBPRIORITYID,
CAMPAIGNPRIORITY.CAMPAIGNPRIORITYTYPECODEID as CAMPAIGNPRIORITYTYPECODEID,
PERIODS.STARTDATE as STARTDATE,
PERIODS.ENDDATE as ENDDATE,
PERIODS.PERIODYEAR as YEAR,
CAMPAIGNPRIORITY.GOAL as CAMPAIGNPRIORITYGOAL,
CAMPAIGNSUBPRIORITY.GOAL as CAMPAIGNSUBPRIORITYGOAL,
CAMPAIGNSUBPRIORITYNAMECODE.DESCRIPTION as DESCRIPTION,
CAMPAIGNPRIORITY.ORGANIZATIONAMOUNT as CAMPAIGNPRIORITYORGANIZATIONAMOUNT,
CAMPAIGNSUBPRIORITY.ORGANIZATIONAMOUNT as CAMPAIGNSUBPRIORITYORGANIZATIONAMOUNT,
CAMPAIGN.BASECURRENCYID as BASECURRENCYID,
CURRENCYPROPERTIES.ISO4217 as ISOCURRENCYCODE,
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
from
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
cross join dbo.CAMPAIGNPRIORITY
inner join dbo.CAMPAIGN on CAMPAIGNPRIORITY.CAMPAIGNID = CAMPAIGN.ID
left join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID = CAMPAIGNPRIORITY.ID
left join dbo.CAMPAIGNSUBPRIORITYNAMECODE on CAMPAIGNSUBPRIORITY.CAMPAIGNSUBPRIORITYNAMECODEID = CAMPAIGNSUBPRIORITYNAMECODE.ID
outer apply
dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID) as CURRENCYPROPERTIES
where
CAMPAIGNPRIORITY.CAMPAIGNID = @CAMPAIGNID
and ( (CAMPAIGNPRIORITY.CAMPAIGNPRIORITYTYPECODEID = @CAMPAIGNPRIORITYTYPECODEID) or (@CAMPAIGNPRIORITYTYPECODEID is null) )
),CP_TOTALRECEIVED as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(sum(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.id
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE = 0
and FINANCIALTRANSACTION.DELETEDON is null
and REVENUESPLIT_EXT.APPLICATIONCODE in (0, 1, 5, 6, 7, 3, 10)
and (REVENUESPLIT_EXT.APPLICATIONCODE <> 10 or REVENUESPLIT_EXT.TYPECODE = 0)
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by CAMPAIGNPRIORITY.ID,PERIODS.STARTDATE,PERIODS.ENDDATE
), CPS_TOTALRECEIVED as (
select
REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(sum(RS.AMOUNTINCURRENCY), 0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.id
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE = 0
and FINANCIALTRANSACTION.DELETEDON is null
and REVENUESPLIT_EXT.APPLICATIONCODE in (0, 6, 7, 3)
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID,PERIODS.STARTDATE,PERIODS.ENDDATE
), CP_PAYMENTS as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(sum(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by CAMPAIGNPRIORITY.ID, PERIODS.STARTDATE, PERIODS.ENDDATE
), CP_WRITEOFFS as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(sum(WO.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM as WRITEOFFSPLIT
inner join dbo.FINANCIALTRANSACTION as WRITEOFF on WRITEOFF.ID = WRITEOFFSPLIT.FINANCIALTRANSACTIONID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = WRITEOFF.PARENTID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_WRITEOFFSPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as WO on WO.ID = WRITEOFFSPLIT.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by CAMPAIGNPRIORITY.ID, PERIODS.STARTDATE, PERIODS.ENDDATE
),CP_TOTALBALANCE as (
select
CP_PAYMENTS.CAMPAIGNPRIORITYID as CAMPAIGNPRIORITYID,
CP_PAYMENTS.STARTDATE,
CP_PAYMENTS.ENDDATE,
(coalesce(CP_PAYMENTS.AMOUNTINCURRENCY, 0) - coalesce(CP_WRITEOFFS.AMOUNTINCURRENCY, 0)) as TOTALBALANCE
from
CP_PAYMENTS
left join CP_WRITEOFFS on CP_PAYMENTS.CAMPAIGNPRIORITYID= CP_WRITEOFFS.CAMPAIGNPRIORITYID and CP_PAYMENTS.STARTDATE=CP_WRITEOFFS.STARTDATE and CP_PAYMENTS.ENDDATE=CP_WRITEOFFS.ENDDATE
), CPS_PAYMENTS as (
select
CAMPAIGNSUBPRIORITY.ID as CAMPAIGNSUBPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(SUM(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID= FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by CAMPAIGNSUBPRIORITY.ID, PERIODS.STARTDATE, PERIODS.ENDDATE
), CPS_WRITEOFFS as (
select
CAMPAIGNSUBPRIORITY.ID as CAMPAIGNSUBPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(SUM(WO.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM as WRITEOFFSPLIT
inner join dbo.FINANCIALTRANSACTION as WRITEOFF on WRITEOFF.ID = WRITEOFFSPLIT.FINANCIALTRANSACTIONID
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = WRITEOFF.PARENTID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID= FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
left join dbo.UFN_WRITEOFFSPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as WO on WO.ID = WRITEOFFSPLIT.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by CAMPAIGNSUBPRIORITY.ID, PERIODS.STARTDATE, PERIODS.ENDDATE
), CPS_TOTALBALANCE as (
select
CPS_PAYMENTS.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITYID,
CPS_PAYMENTS.STARTDATE,
CPS_PAYMENTS.ENDDATE,
(coalesce(CPS_PAYMENTS.AMOUNTINCURRENCY, 0) - coalesce(CPS_WRITEOFFS.AMOUNTINCURRENCY, 0)) as TOTALBALANCE
from
CPS_PAYMENTS
left join CPS_WRITEOFFS on CPS_PAYMENTS.CAMPAIGNSUBPRIORITYID= CPS_WRITEOFFS.CAMPAIGNSUBPRIORITYID and CPS_PAYMENTS.STARTDATE=CPS_WRITEOFFS.STARTDATE and CPS_PAYMENTS.ENDDATE=CPS_WRITEOFFS.ENDDATE
),CP_TOTALPLANNEDGIFTS as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(sum(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE = 4
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by CAMPAIGNPRIORITY.ID,PERIODS.STARTDATE,PERIODS.ENDDATE
), CPS_TOTALPLANNEDGIFTS as (
select
REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITYID,
PERIODS.STARTDATE,
PERIODS.ENDDATE,
coalesce(sum(RS.AMOUNTINCURRENCY), 0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
cross join
dbo.UFN_CAMPAIGNPRIORITYREPORT_GETPERIODS(@STARTDATE, @ENDDATE, 3) as PERIODS
where
FINANCIALTRANSACTION.TYPECODE = 4
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= PERIODS.STARTDATE or PERIODS.STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= PERIODS.ENDDATE or PERIODS.ENDDATE is null))
group by REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID,PERIODS.STARTDATE,PERIODS.ENDDATE
)
select
Q.CAMPAIGNPRIORITYID as CAMPAIGNPRIORITY_ID,
dbo.UFN_CAMPAIGNPRIORITYTYPECODE_GETDESCRIPTION(Q.CAMPAIGNPRIORITYTYPECODEID) as CAMPAIGNPRIORITY_TYPE,
coalesce(CP_TOTALRECEIVED.AMOUNTINCURRENCY,0) as CAMPAIGNPRIORITY_TOTALRECEIVED,
coalesce(CP_TOTALBALANCE.TOTALBALANCE,0) as CAMPAIGNPRIORITY_TOTALBALANCE,
case @CURRENCYCODE
when 0 then Q.CAMPAIGNPRIORITYGOAL
else Q.CAMPAIGNPRIORITYORGANIZATIONAMOUNT
end as CAMPAIGNPRIORITY_GOAL,
Q.YEAR as CAMPAIGNPRIORITY_DATEYEAR,
0 as CAMPAIGNPRIORITY_DATEQUARTER,
Q.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITY_ID,
Q.DESCRIPTION as CAMPAIGNSUBPRIORITY_NAME,
coalesce(CPS_TOTALRECEIVED.AMOUNTINCURRENCY,0) as CAMPAIGNSUBPRIORITY_TOTALRECEIVED,
coalesce(CPS_TOTALBALANCE.TOTALBALANCE,0) as CAMPAIGNSUBPRIORITY_TOTALBALANCE,
case @CURRENCYCODE
when 0 then Q.CAMPAIGNSUBPRIORITYGOAL
else Q.CAMPAIGNSUBPRIORITYORGANIZATIONAMOUNT
end as CAMPAIGNSUBPRIORITY_GOAL,
Q.YEAR as CAMPAIGNSUBPRIORITY_DATEYEAR,
0 as CAMPAIGNSUBPRIORITY_DATEQUARTER,
coalesce(CP_TOTALPLANNEDGIFTS.AMOUNTINCURRENCY,0) as CAMPAIGNPRIORITY_TOTALPLANNEDGIFTS,
coalesce(CPS_TOTALPLANNEDGIFTS.AMOUNTINCURRENCY,0) as CAMPAIGNSUBPRIORITY_TOTALPLANNEDGIFTS,
Q.ISOCURRENCYCODE as ISOCURRENCYCODE,
Q.CURRENCYSYMBOL,
Q.CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
from CAMPAIGNPRIORITY_CTE Q
left join CP_TOTALRECEIVED on CP_TOTALRECEIVED.CAMPAIGNPRIORITYID = Q.CAMPAIGNPRIORITYID and CP_TOTALRECEIVED.STARTDATE= Q.STARTDATE and CP_TOTALRECEIVED.ENDDATE=Q.ENDDATE
left join CPS_TOTALRECEIVED on CPS_TOTALRECEIVED.CAMPAIGNSUBPRIORITYID = Q.CAMPAIGNSUBPRIORITYID and CPS_TOTALRECEIVED.STARTDATE=Q.STARTDATE and CPS_TOTALRECEIVED.ENDDATE=Q.ENDDATE
left join CP_TOTALBALANCE on CP_TOTALBALANCE.CAMPAIGNPRIORITYID= Q.CAMPAIGNPRIORITYID and CP_TOTALBALANCE.STARTDATE=Q.STARTDATE and CP_TOTALBALANCE.ENDDATE=Q.ENDDATE
left join CPS_TOTALBALANCE on CPS_TOTALBALANCE.CAMPAIGNSUBPRIORITYID= Q.CAMPAIGNSUBPRIORITYID and CPS_TOTALBALANCE.STARTDATE=Q.STARTDATE and CPS_TOTALBALANCE.ENDDATE=Q.ENDDATE
left join CP_TOTALPLANNEDGIFTS on CP_TOTALPLANNEDGIFTS.CAMPAIGNPRIORITYID= Q.CAMPAIGNPRIORITYID and CP_TOTALPLANNEDGIFTS.STARTDATE=Q.STARTDATE and CP_TOTALPLANNEDGIFTS.ENDDATE=Q.ENDDATE
left join CPS_TOTALPLANNEDGIFTS on CPS_TOTALPLANNEDGIFTS.CAMPAIGNSUBPRIORITYID= Q.CAMPAIGNSUBPRIORITYID and CPS_TOTALPLANNEDGIFTS.STARTDATE=Q.STARTDATE and CPS_TOTALPLANNEDGIFTS.ENDDATE=Q.ENDDATE
order by Q.YEAR
end
else
begin
WITH CAMPAIGNPRIORITY_CTE as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
CAMPAIGNSUBPRIORITY.ID as CAMPAIGNSUBPRIORITYID,
CAMPAIGNPRIORITY.CAMPAIGNPRIORITYTYPECODEID as CAMPAIGNPRIORITYTYPECODEID,
0 as YEAR,
CAMPAIGNPRIORITY.GOAL as CAMPAIGNPRIORITYGOAL,
CAMPAIGNSUBPRIORITY.GOAL as CAMPAIGNSUBPRIORITYGOAL,
CAMPAIGNSUBPRIORITYNAMECODE.DESCRIPTION as DESCRIPTION,
CAMPAIGNPRIORITY.ORGANIZATIONAMOUNT as CAMPAIGNPRIORITYORGANIZATIONAMOUNT,
CAMPAIGNSUBPRIORITY.ORGANIZATIONAMOUNT as CAMPAIGNSUBPRIORITYORGANIZATIONAMOUNT,
CAMPAIGN.BASECURRENCYID as BASECURRENCYID,
CURRENCYPROPERTIES.ISO4217 as ISOCURRENCYCODE,
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
from
dbo.CAMPAIGNPRIORITY
inner join dbo.CAMPAIGN on CAMPAIGNPRIORITY.CAMPAIGNID = CAMPAIGN.ID
left join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID = CAMPAIGNPRIORITY.ID
left join dbo.CAMPAIGNSUBPRIORITYNAMECODE on CAMPAIGNSUBPRIORITY.CAMPAIGNSUBPRIORITYNAMECODEID = CAMPAIGNSUBPRIORITYNAMECODE.ID
outer apply
dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID) as CURRENCYPROPERTIES
where
CAMPAIGNPRIORITY.CAMPAIGNID = @CAMPAIGNID
and ( (CAMPAIGNPRIORITY.CAMPAIGNPRIORITYTYPECODEID = @CAMPAIGNPRIORITYTYPECODEID) or (@CAMPAIGNPRIORITYTYPECODEID is null) )
),CP_TOTALRECEIVED as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
coalesce(sum(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
where
FINANCIALTRANSACTION.TYPECODE = 0
and FINANCIALTRANSACTION.DELETEDON is null
and REVENUESPLIT_EXT.APPLICATIONCODE in (0, 1, 5, 6, 7, 3, 10)
and (REVENUESPLIT_EXT.APPLICATIONCODE <> 10 or REVENUESPLIT_EXT.TYPECODE = 0)
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= @ENDDATE or @ENDDATE is null))
group by CAMPAIGNPRIORITY.ID
), CPS_TOTALRECEIVED as (
select
REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITYID,
coalesce(sum(RS.AMOUNTINCURRENCY), 0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
where
FINANCIALTRANSACTION.TYPECODE = 0
and FINANCIALTRANSACTION.DELETEDON is null
and REVENUESPLIT_EXT.APPLICATIONCODE in (0, 6, 7, 3)
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= @ENDDATE or @ENDDATE is null))
group by REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
), CP_PAYMENTS as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
coalesce(sum(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <=@ENDDATE or @ENDDATE is null))
group by CAMPAIGNPRIORITY.ID
), CP_WRITEOFFS as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
coalesce(sum(WO.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM as WRITEOFFSPLIT
inner join dbo.FINANCIALTRANSACTION as WRITEOFF on WRITEOFF.ID = WRITEOFFSPLIT.FINANCIALTRANSACTIONID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = WRITEOFF.PARENTID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_WRITEOFFSPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as WO on WO.ID = WRITEOFFSPLIT.ID
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= @ENDDATE or @ENDDATE is null))
group by CAMPAIGNPRIORITY.ID
),CP_TOTALBALANCE as (
select
CP_PAYMENTS.CAMPAIGNPRIORITYID as CAMPAIGNPRIORITYID,
(coalesce(CP_PAYMENTS.AMOUNTINCURRENCY, 0) - coalesce(CP_WRITEOFFS.AMOUNTINCURRENCY, 0)) as TOTALBALANCE
from
CP_PAYMENTS
left join CP_WRITEOFFS on CP_PAYMENTS.CAMPAIGNPRIORITYID= CP_WRITEOFFS.CAMPAIGNPRIORITYID
), CPS_PAYMENTS as (
select
CAMPAIGNSUBPRIORITY.ID as CAMPAIGNSUBPRIORITYID,
coalesce(SUM(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID= FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= @ENDDATE or @ENDDATE is null))
group by CAMPAIGNSUBPRIORITY.ID
), CPS_WRITEOFFS as (
select
CAMPAIGNSUBPRIORITY.ID as CAMPAIGNSUBPRIORITYID,
coalesce(SUM(WO.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM as WRITEOFFSPLIT
inner join dbo.FINANCIALTRANSACTION as WRITEOFF on WRITEOFF.ID = WRITEOFFSPLIT.FINANCIALTRANSACTIONID
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = WRITEOFF.PARENTID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID= FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
left join dbo.UFN_WRITEOFFSPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as WO on WO.ID = WRITEOFFSPLIT.ID
where
FINANCIALTRANSACTION.TYPECODE in (1, 6)
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= @ENDDATE or @ENDDATE is null))
group by CAMPAIGNSUBPRIORITY.ID
), CPS_TOTALBALANCE as (
select
CPS_PAYMENTS.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITYID,
(coalesce(CPS_PAYMENTS.AMOUNTINCURRENCY, 0) - coalesce(CPS_WRITEOFFS.AMOUNTINCURRENCY, 0)) as TOTALBALANCE
from
CPS_PAYMENTS
left join CPS_WRITEOFFS on CPS_PAYMENTS.CAMPAIGNSUBPRIORITYID= CPS_WRITEOFFS.CAMPAIGNSUBPRIORITYID
),CP_TOTALPLANNEDGIFTS as (
select
CAMPAIGNPRIORITY.ID as CAMPAIGNPRIORITYID,
coalesce(sum(RS.AMOUNTINCURRENCY),0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.CAMPAIGNSUBPRIORITY on CAMPAIGNSUBPRIORITY.ID = REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNPRIORITY.ID = CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
where
FINANCIALTRANSACTION.TYPECODE = 4
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= @ENDDATE or @ENDDATE is null))
group by CAMPAIGNPRIORITY.ID
), CPS_TOTALPLANNEDGIFTS as (
select
REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITYID,
coalesce(sum(RS.AMOUNTINCURRENCY), 0) as AMOUNTINCURRENCY
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLITCAMPAIGN on REVENUESPLITCAMPAIGN.REVENUESPLITID = FINANCIALTRANSACTIONLINEITEM.ID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID,@ORGANIZATIONCURRENCYID,@DECIMALDIGITS,@ROUNDINGTYPECODE) as RS on RS.ID = FINANCIALTRANSACTIONLINEITEM.ID
where
FINANCIALTRANSACTION.TYPECODE = 4
and FINANCIALTRANSACTION.DELETEDON is null
and ((FINANCIALTRANSACTION.DATE >= @STARTDATE or @STARTDATE is null) and (FINANCIALTRANSACTION.DATE <= @ENDDATE or @ENDDATE is null))
group by REVENUESPLITCAMPAIGN.CAMPAIGNSUBPRIORITYID
)
select
Q.CAMPAIGNPRIORITYID as CAMPAIGNPRIORITY_ID,
dbo.UFN_CAMPAIGNPRIORITYTYPECODE_GETDESCRIPTION(Q.CAMPAIGNPRIORITYTYPECODEID) as CAMPAIGNPRIORITY_TYPE,
coalesce(CP_TOTALRECEIVED.AMOUNTINCURRENCY,0) as CAMPAIGNPRIORITY_TOTALRECEIVED,
coalesce(CP_TOTALBALANCE.TOTALBALANCE,0) as CAMPAIGNPRIORITY_TOTALBALANCE,
case @CURRENCYCODE
when 0 then Q.CAMPAIGNPRIORITYGOAL
else Q.CAMPAIGNPRIORITYORGANIZATIONAMOUNT
end as CAMPAIGNPRIORITY_GOAL,
Q.YEAR as CAMPAIGNPRIORITY_DATEYEAR,
0 as CAMPAIGNPRIORITY_DATEQUARTER,
Q.CAMPAIGNSUBPRIORITYID as CAMPAIGNSUBPRIORITY_ID,
Q.DESCRIPTION as CAMPAIGNSUBPRIORITY_NAME,
coalesce(CPS_TOTALRECEIVED.AMOUNTINCURRENCY,0) as CAMPAIGNSUBPRIORITY_TOTALRECEIVED,
coalesce(CPS_TOTALBALANCE.TOTALBALANCE,0) as CAMPAIGNSUBPRIORITY_TOTALBALANCE,
case @CURRENCYCODE
when 0 then Q.CAMPAIGNSUBPRIORITYGOAL
else Q.CAMPAIGNSUBPRIORITYORGANIZATIONAMOUNT
end as CAMPAIGNSUBPRIORITY_GOAL,
Q.YEAR as CAMPAIGNSUBPRIORITY_DATEYEAR,
0 as CAMPAIGNSUBPRIORITY_DATEQUARTER,
coalesce(CP_TOTALPLANNEDGIFTS.AMOUNTINCURRENCY,0) as CAMPAIGNPRIORITY_TOTALPLANNEDGIFTS,
coalesce(CPS_TOTALPLANNEDGIFTS.AMOUNTINCURRENCY,0) as CAMPAIGNSUBPRIORITY_TOTALPLANNEDGIFTS,
Q.ISOCURRENCYCODE as ISOCURRENCYCODE,
Q.CURRENCYSYMBOL,
Q.CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
from CAMPAIGNPRIORITY_CTE Q
left join CP_TOTALRECEIVED on CP_TOTALRECEIVED.CAMPAIGNPRIORITYID = Q.CAMPAIGNPRIORITYID
left join CPS_TOTALRECEIVED on CPS_TOTALRECEIVED.CAMPAIGNSUBPRIORITYID = Q.CAMPAIGNSUBPRIORITYID
left join CP_TOTALBALANCE on CP_TOTALBALANCE.CAMPAIGNPRIORITYID= Q.CAMPAIGNPRIORITYID
left join CPS_TOTALBALANCE on CPS_TOTALBALANCE.CAMPAIGNSUBPRIORITYID= Q.CAMPAIGNSUBPRIORITYID
left join CP_TOTALPLANNEDGIFTS on CP_TOTALPLANNEDGIFTS.CAMPAIGNPRIORITYID= Q.CAMPAIGNPRIORITYID
left join CPS_TOTALPLANNEDGIFTS on CPS_TOTALPLANNEDGIFTS.CAMPAIGNSUBPRIORITYID= Q.CAMPAIGNSUBPRIORITYID
order by Q.YEAR
end
end