USP_REPORT_UPGRADE
Returns data for the sponsorship UPGRADE report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DIMENSION1 | nvarchar(100) | IN | |
@DIMENSION1VALUE | nvarchar(255) | IN | |
@DIMENSION1VALUE3 | nvarchar(255) | IN | |
@DIMENSION2 | nvarchar(100) | IN | |
@DIMENSION2VALUE | nvarchar(255) | IN | |
@DIMENSION2VALUE3 | nvarchar(255) | IN | |
@DIMENSION3 | nvarchar(100) | IN | |
@DIMENSION3VALUE | nvarchar(255) | IN | |
@DIMENSION3VALUE3 | nvarchar(255) | IN | |
@REVENUEDEVELOPMENTFUNCTIONCODEID | uniqueidentifier | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@CURRENCYCODE | smallint | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_UPGRADE (
@DIMENSION1 as nvarchar(100) = null,
@DIMENSION1VALUE as nvarchar(255) = null,
@DIMENSION1VALUE3 as nvarchar(255) = null,
@DIMENSION2 as nvarchar(100) = null,
@DIMENSION2VALUE as nvarchar(255) = null,
@DIMENSION2VALUE3 as nvarchar(255) = null,
@DIMENSION3 as nvarchar(100) = null,
@DIMENSION3VALUE as nvarchar(255) = null,
@DIMENSION3VALUE3 as nvarchar(255) = null,
@REVENUEDEVELOPMENTFUNCTIONCODEID uniqueidentifier,
@REPORTUSERID nvarchar(128) = null,
@CURRENCYCODE smallint = null,
@ALTREPORTUSERID nvarchar(128) = null
)
with execute as owner
as
set nocount on;
declare @SQLTOEXEC nvarchar(max);
declare @FROMCLAUSE nvarchar(max);
declare @COLUMNSELECT nvarchar(max);
declare @WHERECLAUSE nvarchar(max);
declare @GROUPBYCLAUSE nvarchar(max);
declare @SELECT nvarchar(max);
declare @FROM nvarchar(max);
declare @COLUMN nvarchar(max);
declare @WHERE nvarchar(max);
declare @LOCATIONCOUNT tinyint = 0;
declare @LOCATIONTYPEENUM tinyint = 2;
declare @DATECOLTEMP nvarchar(max);
declare @DIMENSIONCOLUMNS nvarchar(max) = 'DIMENSION1';
declare @RESULTSELECTION nvarchar(max);
declare @SELECTEDCURRENCYID uniqueidentifier;
declare @CURRENTAPPUSERID uniqueidentifier = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
if @CURRENCYCODE =3
begin
if dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID) is not null
begin
select @SELECTEDCURRENCYID = CURRENCYSET.BASECURRENCYID
from dbo.CURRENCYSET
where
CURRENCYSET.ID = dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID);
end
else
begin
select @SELECTEDCURRENCYID = CURRENCYSET.BASECURRENCYID
from dbo.CURRENCYSET
where
CURRENCYSET.ID = dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET();
end
end
else
set @SELECTEDCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
set @FROMCLAUSE = ' from dbo.SPONSORSHIP SP' +
' inner join dbo.REVENUESPLIT SPLT on SPLT.ID = SP.REVENUESPLITID ' +
' inner join dbo.REVENUE RV on RV.ID = SPLT.REVENUEID ' +
' inner join dbo.MKTSPONSORSHIPMAILINGTEMPLATEACTIVATED MKTSA on MKTSA.SPONSORSHIPID = SP.ID '+
--' inner join dbo.MKTSEGMENTATION SEG on SEG.ID = MKTSA.MKTSEGMENTATIONID '+
' inner join dbo.MKTSEGMENTATIONACTIVATE SEGACTIVE on SEGACTIVE.SEGMENTATIONID = MKTSA.MKTSEGMENTATIONID ';
--' left join RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY RGDFH on RGDFH.REVENUEID = RV.ID '+
--' left join REVENUEDEVELOPMENTFUNCTION RF on RF.ID = RGDFH.REVENUEDEVELOPMENTFUNCTIONID and RF.REVENUEDEVELOPMENTFUNCTIONCODEID=@REVENUEDEVELOPMENTFUNCTIONCODEID ';
set @WHERECLAUSE = ' where SP.ID = SP.ID ';
--set @COLUMNSELECT = 'select 1 as DATECOL, 1 as YEARCOL, case when convert(date,MKTSA.DATESENT)<=RGDFH.TRANSACTIONDATE then 1 else null end as UPGRADES, ' +
set @COLUMNSELECT = 'select 1 as DATECOL, 1 as YEARCOL, SEGACTIVE.SEGMENTATIONID as SEGMENTATIONID, SPLT.REVENUEID as REVENUEID, ' +char(13)+
'(select CURRENCYSYMBOL from dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID)) as CURRENCYSYMBOL, ' + char(13) +
'(select ISO4217 from dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID)) as ISOCURRENCYCODE, ' + char(13) +
'(select DECIMALDIGITS from dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID)) as DECIMALDIGITS, ' + char(13) +
'(select SYMBOLDISPLAYSETTINGCODE from dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID)) as CURRENCYSYMBOLDISPLAYSETTINGCODE ' ;
-- count how many dimension parameters have location type specified
if @DIMENSION1 = @LOCATIONTYPEENUM
begin
set @LOCATIONCOUNT = @LOCATIONCOUNT + 1;
end
if @DIMENSION2 is not null and @DIMENSION2 = @LOCATIONTYPEENUM
begin
set @LOCATIONCOUNT = @LOCATIONCOUNT + 1;
end
if @DIMENSION3 is not null and @DIMENSION3 = @LOCATIONTYPEENUM
begin
set @LOCATIONCOUNT = @LOCATIONCOUNT + 1;
end
if @DIMENSION1 = 12 or @DIMENSION2 = 12 or @DIMENSION3=12
set @FROMCLAUSE = @FROMCLAUSE + ' inner join RECURRINGGIFTAMENDMENT RGDFH on RGDFH.FINANCIALTRANSACTIONID = RV.ID ';
-- only process dimension if not null and not Location Type
if @DIMENSION1 is not null and @DIMENSION1 <> @LOCATIONTYPEENUM
begin
exec dbo.USP_REPORT_PROCESSDIMENSION
@DIMENSION1,
'@DIMENSION1VALUE',
@FROM output,
@COLUMN output,
@WHERE output,
'DIMENSION1'
if @FROM is not null
begin
set @FROMCLAUSE = @FROMCLAUSE + @FROM;
end
set @COLUMNSELECT = @COLUMNSELECT + @COLUMN;
set @WHERECLAUSE += @WHERE + ' and @DIMENSION1VALUE3 is null';
set @GROUPBYCLAUSE = 'DIMENSION1';
--
-- set these to null for the next row
--
set @FROM = '';
set @COLUMN = '';
set @WHERE = '';
end
-- only process dimension if it's not null and is not Location Type
if @DIMENSION2 is not null
begin
set @DIMENSIONCOLUMNS = @DIMENSIONCOLUMNS + ', DIMENSION2';
if @DIMENSION2 <> @LOCATIONTYPEENUM
begin
exec dbo.USP_REPORT_PROCESSDIMENSION
@DIMENSION2,
'@DIMENSION2VALUE',
@FROM output,
@COLUMN output,
@WHERE output,
'DIMENSION2'
-- for channel and appeal from clause is not used.
if @FROM is not null
begin
set @FROMCLAUSE = @FROMCLAUSE + @FROM;
end
set @COLUMNSELECT = @COLUMNSELECT + @COLUMN;
set @WHERECLAUSE = @WHERECLAUSE + @WHERE + ' and @DIMENSION2VALUE3 is null';
if @GROUPBYCLAUSE is not null
begin
set @GROUPBYCLAUSE = @GROUPBYCLAUSE + ', DIMENSION2';
end
else
begin
set @GROUPBYCLAUSE = 'DIMENSION2';
end
--
-- set these to null for the next row
--
set @FROM = '';
set @COLUMN = '';
set @WHERE = '';
end
end
else
begin
set @WHERECLAUSE = @WHERECLAUSE + ' and @DIMENSION2VALUE is null and @DIMENSION2VALUE3 is null';
end
--
if @DIMENSION3 is not null
begin
set @DIMENSIONCOLUMNS = @DIMENSIONCOLUMNS + ', DIMENSION3';
if @DIMENSION3 <> @LOCATIONTYPEENUM
begin
exec dbo.USP_REPORT_PROCESSDIMENSION
@DIMENSION3,
'@DIMENSION3VALUE',
@FROM output,
@COLUMN output,
@WHERE output,
'DIMENSION3'
-- for channel and appeal from clause is not used.
if @FROM is not null
begin
set @FROMCLAUSE = @FROMCLAUSE + @FROM;
end
set @COLUMNSELECT = @COLUMNSELECT + @COLUMN;
set @WHERECLAUSE = @WHERECLAUSE + @WHERE + ' and @DIMENSION3VALUE3 is null';
if @GROUPBYCLAUSE is not null
begin
set @GROUPBYCLAUSE = @GROUPBYCLAUSE + ', DIMENSION3';
end
else
begin
set @GROUPBYCLAUSE = 'DIMENSION3';
end
end
end
else
begin
set @WHERECLAUSE = @WHERECLAUSE + ' and @DIMENSION3VALUE is null and @DIMENSION3VALUE3 is null';
end
-- handle processing of location types
If @LOCATIONCOUNT > 0
begin
set @SELECT =' count(*) CNT, (select COUNT(*) from dbo.RECURRINGGIFTAMENDMENT RGDFH ' +
' inner join REVENUEDEVELOPMENTFUNCTION RF on RGDFH.REVENUEDEVELOPMENTFUNCTIONID= RF.ID '+
' where RGDFH.FINANCIALTRANSACTIONID = M.REVENUEID and RF.REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID and RGDFH.MAILINGID= M.SEGMENTATIONID) AS UPGRADES, ' +
' (select sum(case when RGDFH.FREQUENCYCODE = 0 then ' +
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE, @SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE)/12 '+
' when RGDFH.FREQUENCYCODE = 1 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE)/6 '+
' when RGDFH.FREQUENCYCODE = 2 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE)/3 '+
' when RGDFH.FREQUENCYCODE = 3 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 4 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 5 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 6 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) / 2 '+
' when RGDFH.FREQUENCYCODE = 7 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 8 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 9 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) * 4 '+
' else '+
' 0 '+
' end) from dbo.RECURRINGGIFTAMENDMENT RGDFH ' +
' inner join REVENUEDEVELOPMENTFUNCTION RF on RGDFH.REVENUEDEVELOPMENTFUNCTIONID= RF.ID '+
' where RGDFH.FINANCIALTRANSACTIONID =M.REVENUEID and RF.REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID and RGDFH.MAILINGID= M.SEGMENTATIONID) as CHANGEMONTHLYRATE, ';
set @SELECT = @SELECT +
' (select sum(case when RGDFH.FREQUENCYCODE = 0 then ' +
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE)/12 '+
' when RGDFH.FREQUENCYCODE = 1 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE)/6 '+
' when RGDFH.FREQUENCYCODE = 2 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE)/3 '+
' when RGDFH.FREQUENCYCODE = 3 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 4 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 5 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 6 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) / 2 '+
' when RGDFH.FREQUENCYCODE = 7 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 8 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 9 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) * 4 '+
' else '+
' 0 '+
' end) from dbo.RECURRINGGIFTAMENDMENT RGDFH ' +
' inner join REVENUEDEVELOPMENTFUNCTION RF on RGDFH.REVENUEDEVELOPMENTFUNCTIONID= RF.ID '+
' where RGDFH.FINANCIALTRANSACTIONID = M.REVENUEID and RF.REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID and RGDFH.MAILINGID= M.SEGMENTATIONID) as MONTHLYRATE';
exec dbo.USP_REPORT_PROCESSLOCATIONTYPE_DIMENSION
@LOCATIONCOUNT,
@DIMENSION1,
@DIMENSION2,
@DIMENSION3,
@COLUMNSELECT,
@FROMCLAUSE,
@WHERECLAUSE,
@GROUPBYCLAUSE,
@SQLTOEXEC output,
@SELECT,
1,
1
end
else
begin
--set @SELECT = 'select count(*) CNT, UPGRADES, avg(MONTHLYRATE) as MONTHLYRATE, avg(CHANGEMONTHLYRATE) as CHANGEMONTHLYRATE, DATECOL, YEARCOL, '+@GROUPBYCLAUSE;
set @SELECT = 'select 1 as DATECOL, 1 as YEARCOL, count(*) CNT, (select COUNT(*) from dbo.RECURRINGGIFTAMENDMENT RGDFH ' +
' inner join REVENUEDEVELOPMENTFUNCTION RF on RGDFH.REVENUEDEVELOPMENTFUNCTIONID= RF.ID '+
' where RGDFH.FINANCIALTRANSACTIONID = QRY.REVENUEID and RF.REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID and RGDFH.MAILINGID= QRY.SEGMENTATIONID) AS UPGRADES, ' +
' (select sum(case when RGDFH.FREQUENCYCODE = 0 then ' +
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE)/12 '+
' when RGDFH.FREQUENCYCODE = 1 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE)/6 '+
' when RGDFH.FREQUENCYCODE = 2 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE)/3 '+
' when RGDFH.FREQUENCYCODE = 3 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 4 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 5 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 6 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) / 2 '+
' when RGDFH.FREQUENCYCODE = 7 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 8 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 9 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNTCHANGE,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNTCHANGE,RGDFH.DATE) * 4 '+
' else '+
' 0 '+
' end) from dbo.RECURRINGGIFTAMENDMENT RGDFH ' +
' inner join REVENUEDEVELOPMENTFUNCTION RF on RGDFH.REVENUEDEVELOPMENTFUNCTIONID= RF.ID '+
' where RGDFH.FINANCIALTRANSACTIONID = QRY.REVENUEID and RF.REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID and RGDFH.MAILINGID= QRY.SEGMENTATIONID) as CHANGEMONTHLYRATE, ';
set @SELECT = @SELECT +
' (select sum(case when RGDFH.FREQUENCYCODE = 0 then ' +
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE)/12 '+
' when RGDFH.FREQUENCYCODE = 1 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE)/6 '+
' when RGDFH.FREQUENCYCODE = 2 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE)/3 '+
' when RGDFH.FREQUENCYCODE = 3 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 4 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 5 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) '+
' when RGDFH.FREQUENCYCODE = 6 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) / 2 '+
' when RGDFH.FREQUENCYCODE = 7 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 8 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) * 2 '+
' when RGDFH.FREQUENCYCODE = 9 then '+
' dbo.UFN_REPORT_UPGRADE_CONVERTCURRENCY(@CURRENCYCODE,RGDFH.TRANSACTIONAMOUNT,@SELECTEDCURRENCYID,RGDFH.TRANSACTIONCURRENCYID,RGDFH.TRANSACTIONAMOUNT,RGDFH.DATE) * 4 '+
' else '+
' 0 '+
' end) from dbo.RECURRINGGIFTAMENDMENT RGDFH ' +
' inner join REVENUEDEVELOPMENTFUNCTION RF on RGDFH.REVENUEDEVELOPMENTFUNCTIONID= RF.ID '+
' where RGDFH.REVENUEDEVELOPMENTFUNCTIONID is not null and RGDFH.FINANCIALTRANSACTIONID = QRY.REVENUEID and RF.REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID and RGDFH.MAILINGID= QRY.SEGMENTATIONID) as MONTHLYRATE , QRY.ISOCURRENCYCODE,QRY.DECIMALDIGITS,QRY.CURRENCYSYMBOL,QRY.CURRENCYSYMBOLDISPLAYSETTINGCODE, ' + @GROUPBYCLAUSE;
-- construct the sql query
set @SQLTOEXEC = @SELECT + ' from (' + @COLUMNSELECT +' ' +@FROMCLAUSE + ' ' + @WHERECLAUSE + ') as QRY group by DATECOL, YEARCOL, QRY.SEGMENTATIONID, QRY.REVENUEID, ' + @GROUPBYCLAUSE +',QRY.ISOCURRENCYCODE,QRY.DECIMALDIGITS,QRY.CURRENCYSYMBOL,QRY.CURRENCYSYMBOLDISPLAYSETTINGCODE';
end
-- execute the query
exec sp_executesql @SQLTOEXEC,
N'@CURRENCYCODE smallint,@SELECTEDCURRENCYID uniqueidentifier, @REVENUEDEVELOPMENTFUNCTIONCODEID uniqueidentifier, @DIMENSION1VALUE nvarchar(255), @DIMENSION2VALUE nvarchar(255), @DIMENSION3VALUE nvarchar(255), @DIMENSION1VALUE3 nvarchar(255), @DIMENSION2VALUE3 nvarchar(255), @DIMENSION3VALUE3 nvarchar(255)',
@CURRENCYCODE=@CURRENCYCODE,@SELECTEDCURRENCYID=@SELECTEDCURRENCYID,@REVENUEDEVELOPMENTFUNCTIONCODEID = @REVENUEDEVELOPMENTFUNCTIONCODEID, @DIMENSION1VALUE=@DIMENSION1VALUE, @DIMENSION2VALUE=@DIMENSION2VALUE, @DIMENSION3VALUE=@DIMENSION3VALUE, @DIMENSION1VALUE3=@DIMENSION1VALUE3, @DIMENSION2VALUE3=@DIMENSION2VALUE3, @DIMENSION3VALUE3=@DIMENSION3VALUE3;