USP_FAFRAISEDTOTAL_CATEGORIZED_CALCULATE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NUMBERPROCESSED | int | INOUT | |
@CURRENTDATE | datetime | IN |
Definition
Copy
create procedure [dbo].[USP_FAFRAISEDTOTAL_CATEGORIZED_CALCULATE]
(
@NUMBERPROCESSED integer = 0 output,
@CURRENTDATE datetime = null
)
as
begin
set nocount on;
if @CURRENTDATE is null
set @CURRENTDATE = GETDATE();
begin try
merge INTO dbo.FAFRAISEDTOTAL_CATEGORIZED as Target
using (
select
EVENTID
, CONSTITUENTID
, GIFTCOUNT_ALL
, GIFTCOUNT_ONLINE
, GIFTCOUNT_OFFLINE
, GIFTCOUNT_FROMEMAIL
, GIFTCOUNT_FROMSOCIALMEDIA
, GIFTCOUNT_SELF
, AMOUNT_ALL
, AMOUNT_ONLINE
, AMOUNT_OFFLINe
, AMOUNT_FROMEMAIL
, AMOUNT_FROMSOCIALMEDIA
, AMOUNT_SELF
, AMOUNTPENDING
, DATECHANGED = @CURRENTDATE
from dbo.[UFN_REVENUE_CALCPARTICIPANTRAISEDTOTAL_CATEGORIZED] ()
)
as source on (target.CONSTITUENTID = source.CONSTITUENTID and target.EVENTID = source.EVENTID)
when matched and (
source.GIFTCOUNT_ALL <> target.GIFTCOUNT_ALL
or source.GIFTCOUNT_ONLINE <> target.GIFTCOUNT_ONLINE
or source.GIFTCOUNT_OFFLINE <> target.GIFTCOUNT_OFFLINE
or source.GIFTCOUNT_FROMEMAIL <> target.GIFTCOUNT_FROMEMAIL
or source.GIFTCOUNT_FROMSOCIALMEDIA <> target.GIFTCOUNT_FROMSOCIALMEDIA
or source.GIFTCOUNT_SELF <> target.GIFTCOUNT_SELF
or source.AMOUNT_ALL <> target.AMOUNT_ALL
or source.AMOUNT_ONLINE <> target.AMOUNT_ONLINE
or source.AMOUNT_OFFLINE <> target.AMOUNT_OFFLINE
or source.AMOUNT_FROMEMAIL <> target.AMOUNT_FROMEMAIL
or source.AMOUNT_FROMSOCIALMEDIA <> target.AMOUNT_FROMSOCIALMEDIA
or source.AMOUNT_SELF <> target.AMOUNT_SELF
or source.AMOUNTPENDING <> target.AMOUNTPENDING
) then
update set
GIFTCOUNT_ALL = isnull(source.GIFTCOUNT_ALL, 0)
, GIFTCOUNT_ONLINE = isnull(source.GIFTCOUNT_ONLINE, 0)
, GIFTCOUNT_OFFLINE = isnull(source.GIFTCOUNT_OFFLINE, 0)
, GIFTCOUNT_FROMEMAIL = isnull(source.GIFTCOUNT_FROMEMAIL, 0)
, GIFTCOUNT_FROMSOCIALMEDIA = isnull(source.GIFTCOUNT_FROMSOCIALMEDIA, 0)
, GIFTCOUNT_SELF = isnull(source.GIFTCOUNT_SELF, 0)
, AMOUNT_ALL = isnull(source.AMOUNT_ALL, 0)
, AMOUNT_ONLINE = isnull(source.AMOUNT_ONLINE, 0)
, AMOUNT_OFFLINE = isnull(source.AMOUNT_OFFLINE, 0)
, AMOUNT_FROMEMAIL = isnull(source.AMOUNT_FROMEMAIL, 0)
, AMOUNT_FROMSOCIALMEDIA = isnull(source.AMOUNT_FROMSOCIALMEDIA, 0)
, AMOUNT_SELF = isnull(source.AMOUNT_SELF, 0)
, AMOUNTPENDING = isnull(source.AMOUNTPENDING, 0)
, DATECHANGED = source.DATECHANGED
when not matched then
insert (EVENTID, CONSTITUENTID
, GIFTCOUNT_ALL
, GIFTCOUNT_ONLINE
, GIFTCOUNT_OFFLINE
, GIFTCOUNT_FROMEMAIL
, GIFTCOUNT_FROMSOCIALMEDIA
, GIFTCOUNT_SELF
, AMOUNT_ALL
, AMOUNT_ONLINE
, AMOUNT_OFFLINE
, AMOUNT_FROMEMAIL
, AMOUNT_FROMSOCIALMEDIA
, AMOUNT_SELF
, AMOUNTPENDING
, DATECHANGED
) values(source.EVENTID, source.CONSTITUENTID
, isnull(source.GIFTCOUNT_ALL, 0)
, isnull(source.GIFTCOUNT_ONLINE, 0)
, isnull(source.GIFTCOUNT_OFFLINE, 0)
, isnull(source.GIFTCOUNT_FROMEMAIL, 0)
, isnull(source.GIFTCOUNT_FROMSOCIALMEDIA, 0)
, isnull(source.GIFTCOUNT_SELF, 0)
, isnull(source.AMOUNT_ALL, 0)
, isnull(source.AMOUNT_ONLINE, 0)
, isnull(source.AMOUNT_OFFLINE, 0)
, isnull(source.AMOUNT_FROMEMAIL, 0)
, isnull(source.AMOUNT_FROMSOCIALMEDIA, 0)
, isnull(source.AMOUNT_SELF, 0)
, isnull(source.AMOUNTPENDING, 0)
, source.DATECHANGED
);
select @NUMBERPROCESSED=COUNT(*) from dbo.FAFRAISEDTOTAL_CATEGORIZED (nolock)
where DATECHANGED = @CURRENTDATE
end try
begin catch
exec dbo.USP_RAISE_ERROR;
end catch
end